public static EdmModel BuildEdmModel(this OeDataAdapter dataAdapter) { var modelBuilder = new OeEdmModelBuilder(dataAdapter.EntitySetMetaAdapters.EdmModelMetadataProvider, dataAdapter.EntitySetMetaAdapters.ToDictionary()); BuildOperations(dataAdapter, modelBuilder); return(modelBuilder.BuildEdmModel()); }
private static void PerformanceCacheOeTest(SelectTestDefinition[] testDefinitions, int testCount, bool cache) { var dataAdapter = new OeEfCoreDataAdapter <OrderContext>(new Db.OeQueryCache() { AllowCache = cache }); IEdmModel edmModel = OeEdmModelBuilder.BuildEdmModel(dataAdapter); var parser = new OeParser(new Uri("http://dummy"), dataAdapter, edmModel); GC.Collect(); GC.WaitForPendingFinalizers(); var stopWatch = new Stopwatch(); stopWatch.Start(); for (int i = 0; i < testCount; i++) { foreach (SelectTestDefinition testDefinition in testDefinitions) { var uri = new Uri("http://dummy/" + testDefinition.Request); using (var response = new MemoryStream()) parser.ExecuteQueryAsync(uri, OeRequestHeaders.Default, response, CancellationToken.None).GetAwaiter().GetResult(); } } stopWatch.Stop(); Console.WriteLine("OdataToEntity cache = " + cache + " " + stopWatch.Elapsed); }
private static DynamicTypeDefinitionManager CreateTypeDefinitionManager(bool useRelationalNulls) { IEdmModel edmModel = new OeEdmModelBuilder(new OrderDataAdapter(), new OeEdmModelMetadataProvider()).BuildEdmModel(); var metadataProvider = new EdmDynamicMetadataProvider(edmModel); return(DynamicTypeDefinitionManager.Create(DynamicDbContext.CreateOptions(useRelationalNulls), metadataProvider)); }
static async Task Main() { //PerformanceCacheTest.RunTest(100); await new PLNull(new PLNull_DbFixtureInitDb()).OrderByColumnsMissingInSelect(0); //new PLNull_ManyColumns(new PLNull_ManyColumnsFixtureInitDb()).Filter(1).GetAwaiter().GetResult(); IEdmModel edmModel = new OeEdmModelBuilder(new OrderDataAdapter(), new OeEdmModelMetadataProvider()).BuildEdmModel(); var metadataProvider = new EdmDynamicMetadataProvider(edmModel); DbContextOptions options = DynamicDbContext.CreateOptions(true); var typeDefinitionManager = DynamicTypeDefinitionManager.Create(options, metadataProvider); ////var dbContext = typeDefinitionManager.CreateDynamicDbContext(); ////var orders = typeDefinitionManager.GetQueryable(dbContext, "Orders"); ////var zzz = orders.Include("Items").Include("AltCustomer").Include("Customer").Include("ShippingAddresses").ToList(); ////var orderItems = typeDefinitionManager.GetQueryable(dbContext, "OrderItems"); ////var zzz2 = orderItems.Include("Order").ToList(); ////dbContext = new DynamicDbContext(options, typeDefinitionManager); ////var zzz3 = new InternalDbSet<DynamicType01>(dbContext).ToList(); var dataAdapter = new DynamicDataAdapter(typeDefinitionManager); var dynamicEdmModel = dataAdapter.BuildEdmModel(); String schema = TestHelper.GetCsdlSchema(dynamicEdmModel); var parser = new OeParser(new Uri("http://dummy"), dynamicEdmModel); var stream = new MemoryStream(); //await parser.ExecuteGetAsync(new Uri("http://dummy/Orders?$expand=Customer,Items&$orderby=Id"), OeRequestHeaders.JsonDefault, stream, CancellationToken.None); await parser.ExecuteGetAsync(new Uri("http://dummy/Orders"), OeRequestHeaders.JsonDefault, stream, CancellationToken.None); stream.Position = 0; String result = new StreamReader(stream).ReadToEnd(); }
private static EdmModel CreateEdmModel(bool useRelationalNulls) { EdmModel edmModel = CreateDynamicEdmModel(useRelationalNulls); edmModel.AddElement(OeEdmModelBuilder.CreateEdmEnumType(typeof(Sex))); edmModel.AddElement(OeEdmModelBuilder.CreateEdmEnumType(typeof(OrderStatus))); return(edmModel); }
public static EdmModel BuildEdmModelFromEf6Model(this Db.OeDataAdapter dataAdapter) { using (var context = (DbContext)dataAdapter.CreateDataContext()) { var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeEf6EdmModelMetadataProvider(context)); return(modelBuilder.BuildEdmModel()); } }
public static EdmModel BuildEdmModel(this Db.OeDataAdapter dataAdapter) { var modelBuilder = new OeEdmModelBuilder(dataAdapter.EntitySetMetaAdapters.EdmModelMetadataProvider); modelBuilder.AddEntitySetRange(dataAdapter.EntitySetMetaAdapters.GetEntitySetNamesEntityTypes()); BuildOperations(dataAdapter, modelBuilder); return(modelBuilder.BuildEdmModel()); }
public EdmModel BuildEdmModel() { using (DynamicDbContext context = _typeDefinitionManager.CreateDynamicDbContext()) { var modelBuilder = new OeEdmModelBuilder(this, new DynamicEdmModelMetadataProvider(context.Model, _typeDefinitionManager)); return(modelBuilder.BuildEdmModel()); } }
internal static EdmModel CreateOeEdmModel(bool useRelationalNulls) { var dataAdapter = new OrderDataAdapter(true, useRelationalNulls); OeEdmModelMetadataProvider metadataProvider = OrderDataAdapter.CreateMetadataProvider(); bool allowCache = TestHelper.GetQueryCache(dataAdapter).AllowCache; var order2DataAdapter = new Order2DataAdapter(allowCache, useRelationalNulls); var refModel = new OeEdmModelBuilder(dataAdapter, metadataProvider).BuildEdmModel(); return(order2DataAdapter.BuildEdmModel(refModel)); }
public static void BuildOperations(Db.OeDataAdapter dataAdapter, OeEdmModelBuilder modelBuilder) { OeOperationConfiguration[] operations = dataAdapter.OperationAdapter.GetOperations(); if (operations != null) { foreach (OeOperationConfiguration operation in operations) { modelBuilder.AddOperation(operation); } } }
private static EdmModel BuildEdmModelFromEf6Model(OeDataAdapter dataAdapter) { using (var context = (DbContext)dataAdapter.CreateDataContext()) { var metadataProvider = new OeEf6EdmModelMetadataProvider(context); var modelBuilder = new OeEdmModelBuilder(metadataProvider); modelBuilder.AddEntitySetRange(dataAdapter.EntitySetAdapters.GetEntitySetNamesEntityTypes()); FixOperations(dataAdapter, modelBuilder); return(modelBuilder.BuildEdmModel()); } }
public static EdmModel BuildEdmModelFromEfCoreModel(this Db.OeDataAdapter dataAdapter, Type[] excludeTypes, params IEdmModel[] refModels) { var context = (DbContext)dataAdapter.CreateDataContext(); try { var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeEfCoreEdmModelMetadataProvider(context.Model)); return(modelBuilder.BuildEdmModel(excludeTypes, refModels)); } finally { dataAdapter.CloseDataContext(context); } }
public EdmModel BuildEdmModel(ModelBuilder.DynamicMetadataProvider metadataProvider) { using (Types.DynamicDbContext context = TypeDefinitionManager.CreateDynamicDbContext()) { var edmModelMetadataProvider = new ModelBuilder.DynamicEdmModelMetadataProvider(context.Model, metadataProvider, TypeDefinitionManager); var modelBuilder = new OeEdmModelBuilder(this, edmModelMetadataProvider); foreach (OeOperationConfiguration operationConfiguration in metadataProvider.GetRoutines(TypeDefinitionManager)) { modelBuilder.AddOperation(operationConfiguration); } return(modelBuilder.BuildEdmModel()); } }
public static EdmModel BuildEdmModelFromEfCorePgSqlModel(this Db.OeDataAdapter dataAdapter, String schema, params IEdmModel[] refModels) { var context = (DbContext)dataAdapter.CreateDataContext(); try { var model = (Model)context.Model; model.Relational().DefaultSchema = schema; var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeEfCoreEdmModelMetadataProvider(model)); return(modelBuilder.BuildEdmModel(refModels)); } finally { dataAdapter.CloseDataContext(context); } }
private static void FixOperations(OeDataAdapter dataAdapter, OeEdmModelBuilder modelBuilder) { OeOperationConfiguration[] operations = dataAdapter.OperationAdapter.GetOperations(); if (operations != null) { foreach (OeOperationConfiguration operation in operations) { String methodInfoName = nameof(OrderContext) + "." + operation.MethodInfoName.Split('.').Last(); var fixOperation = new OeOperationConfiguration(operation.Name, typeof(OrderContext).Namespace, methodInfoName, operation.ReturnType, operation.IsDbFunction); foreach (OeOperationParameterConfiguration parameter in operation.Parameters) { fixOperation.AddParameter(parameter.Name, parameter.ClrType); } modelBuilder.AddOperation(fixOperation); } } }
public static EdmModel BuildEdmModelFromEfCoreModel(this Db.OeDataAdapter dataAdapter) { var context = (DbContext)dataAdapter.CreateDataContext(); try { var metadataProvider = new OeEfCoreEdmModelMetadataProvider(context.Model); var modelBuilder = new OeEdmModelBuilder(metadataProvider); modelBuilder.AddEntitySetRange(dataAdapter.EntitySetMetaAdapters.GetEntitySetNamesEntityTypes()); OeDataAdapterExtension.BuildOperations(dataAdapter, modelBuilder); return(modelBuilder.BuildEdmModel()); } finally { dataAdapter.CloseDataContext(context); } }
private static void BuildOperations(OeDataAdapter dataAdapter, OeEdmModelBuilder modelBuilder) { MethodInfo[] operations = dataAdapter.GetOperations(); if (operations != null) { foreach (MethodInfo methodInfo in operations) { var description = (DescriptionAttribute)methodInfo.GetCustomAttribute(typeof(DescriptionAttribute)); String name = description == null ? methodInfo.Name : description.Description; OeOperationConfiguration functionConfiguration = modelBuilder.AddFunction(null, name); foreach (ParameterInfo parameterInfo in methodInfo.GetParameters()) { functionConfiguration.AddParameter(parameterInfo.Name, parameterInfo.ParameterType); } functionConfiguration.ReturnType = methodInfo.ReturnType; } } }
public static EdmModel BuildEdmModel(this Db.OeDataAdapter dataAdapter, Type[] excludedTypes, params IEdmModel[] refModels) { var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeEdmModelMetadataProvider()); return(modelBuilder.BuildEdmModel(excludedTypes, refModels)); }
public static EdmModel BuildEdmModelFromLinq2DbModel(this Db.OeDataAdapter dataAdapter, params IEdmModel[] refModels) { var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeLinq2DbEdmModelMetadataProvider()); return(modelBuilder.BuildEdmModel(refModels)); }