static async Task Main(string[] args) { var dataAdapter = new OrderDbDataAdapter(false, false, "test"); IEdmModel edmModel = dataAdapter.BuildEdmModel(); await InitializeAsync(dataAdapter, edmModel); var schemaBuilder = new OeSchemaBuilder(dataAdapter, edmModel, new ModelBuilder.OeEdmModelMetadataProvider()); var schema = schemaBuilder.Build(); var printer = new SchemaPrinter(schema); var jsonSchema = printer.Print(); Object dataContext = dataAdapter.CreateDataContext(); var result = await new DocumentExecuter().ExecuteAsync(options => { options.UserContext = dataContext; options.Schema = schema; //options.Query = "query { orders { name customer (address: \"RU\") { name } } }"; options.Query = "query { orders (id: 1) { items (orderId: 1) { product } } }"; }).ConfigureAwait(false); dataAdapter.CloseDataContext(dataContext); var json = new DocumentWriter(indent: true).Write(result); }
private static void PerformanceCacheDbTest(SelectTestDefinition[] testDefinitions, int testCount) { var pool = new DbContextPool <OrderContext>(OrderContextOptions.Create(true, null)); Db.OeEntitySetAdapterCollection entitySetAdapters = new OrderDbDataAdapter(false, false, null).EntitySetAdapters; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); var stopWatch = new Stopwatch(); stopWatch.Start(); for (int i = 0; i < testCount; i++) { foreach (SelectTestDefinition testDefinition in testDefinitions) { OrderContext dbContext = pool.Rent(); testDefinition.ExecutorDb(entitySetAdapters, dbContext); pool.Return(dbContext); } } stopWatch.Stop(); Console.WriteLine("Entity Framework " + stopWatch.Elapsed); }
public static void RunTest(int testCount) { SelectTestDefinition[] testDefinitions = SelectTestDefinition.GetSelectTestDefinitions(); //warming-up var dataAdapter = new OrderDbDataAdapter(false, false, null); var dbContext = (DbContext)dataAdapter.CreateDataContext(); foreach (SelectTestDefinition testDefinition in testDefinitions) { testDefinition.ExecutorDb(dataAdapter, dbContext); } dataAdapter.CloseDataContext(dbContext); PerformanceCacheOeTest(testDefinitions, testCount, true); PerformanceCacheOeTest(testDefinitions, testCount, false); PerformanceCacheDbTest(testDefinitions, testCount); }