Ejemplo n.º 1
0
        public static EdmModel BuildEdmModel(this OeDataAdapter dataAdapter)
        {
            var modelBuilder = new OeEdmModelBuilder(dataAdapter.EntitySetMetaAdapters.EdmModelMetadataProvider, dataAdapter.EntitySetMetaAdapters.ToDictionary());

            BuildOperations(dataAdapter, modelBuilder);
            return(modelBuilder.BuildEdmModel());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        private static EdmModel CreateEdmModel(bool useRelationalNulls)
        {
            EdmModel edmModel = CreateDynamicEdmModel(useRelationalNulls);

            edmModel.AddElement(OeEdmModelBuilder.CreateEdmEnumType(typeof(Sex)));
            edmModel.AddElement(OeEdmModelBuilder.CreateEdmEnumType(typeof(OrderStatus)));
            return(edmModel);
        }
Ejemplo n.º 6
0
 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());
        }
Ejemplo n.º 8
0
 public EdmModel BuildEdmModel()
 {
     using (DynamicDbContext context = _typeDefinitionManager.CreateDynamicDbContext())
     {
         var modelBuilder = new OeEdmModelBuilder(this, new DynamicEdmModelMetadataProvider(context.Model, _typeDefinitionManager));
         return(modelBuilder.BuildEdmModel());
     }
 }
Ejemplo n.º 9
0
        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);
         }
     }
 }
Ejemplo n.º 11
0
 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());
     }
 }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
        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());
            }
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
 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);
            }
        }
Ejemplo n.º 17
0
 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;
         }
     }
 }
Ejemplo n.º 18
0
        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));
        }