public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
     : base(null, null, typeDefinitionManager.OperationAdapter)
 {
     TypeDefinitionManager           = typeDefinitionManager;
     _dynamicEntitySetAdapters       = CreateEntitySetAdapters(typeDefinitionManager);
     base.IsDatabaseNullHighestValue = typeDefinitionManager.IsDatabaseNullHighestValue;
 }
        internal static DynamicTypeDefinitionManager Create(DynamicMetadataProvider metadataProvider, Type dynamicDbContextType)
        {
            var typeDefinitionManager = new DynamicTypeDefinitionManager(dynamicDbContextType, metadataProvider.InformationSchema);

            InitializeDbContext(metadataProvider, dynamicDbContextType, typeDefinitionManager);
            return(typeDefinitionManager);
        }
Ejemplo n.º 3
0
 public static IEdmModel CreateEdmModel(ProviderSpecificSchema providerSchema, InformationSchemaMapping?informationSchemaMapping)
 {
     using (var metadataProvider = providerSchema.CreateMetadataProvider(informationSchemaMapping))
     {
         DynamicTypeDefinitionManager typeDefinitionManager = DynamicTypeDefinitionManager.Create(metadataProvider);
         var dataAdapter = new DynamicDataAdapter(typeDefinitionManager);
         return(dataAdapter.BuildEdmModel(metadataProvider));
     }
 }
Ejemplo n.º 4
0
        public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
            : base(null, null, typeDefinitionManager.OperationAdapter)
        {
            TypeDefinitionManager     = typeDefinitionManager;
            _dynamicEntitySetAdapters = CreateEntitySetAdapters(typeDefinitionManager);

            _expressionVisitor = typeDefinitionManager.ExpressionVisitor;
            base.IsDatabaseNullHighestValue = typeDefinitionManager.IsDatabaseNullHighestValue;
            base.IsCaseSensitive            = typeDefinitionManager.IsCaseSensitive;
        }
        private static Db.OeEntitySetAdapterCollection CreateEntitySetAdapters(DynamicTypeDefinitionManager typeDefinitionManager)
        {
            var entitySetAdapters = new Db.OeEntitySetAdapter[typeDefinitionManager.TypeDefinitions.Count];
            int i = 0;

            foreach (DynamicTypeDefinition typeDefinition in typeDefinitionManager.TypeDefinitions)
            {
                entitySetAdapters[i++] = CreateEntitySetAdapter(typeDefinition.DynamicTypeType, typeDefinition.TableEdmName, typeDefinition.IsQueryType);
            }
            return(new Db.OeEntitySetAdapterCollection(entitySetAdapters));
        }
Ejemplo n.º 6
0
        public static DynamicTypeDefinitionManager Create(DbContextOptions options, DynamicMetadataProvider metadataProvider)
        {
            int             dynamicDbContextIndex = Interlocked.Increment(ref _dynamicDbContextIndex);
            Type            dynamicDbContextType  = Type.GetType(typeof(DynamicDbContext).FullName + dynamicDbContextIndex.ToString("D2"));
            ConstructorInfo ctor = dynamicDbContextType.GetConstructor(new Type[] { typeof(DbContextOptions), typeof(DynamicTypeDefinitionManager) });
            var             typeDefinitionManager = new DynamicTypeDefinitionManager(options, metadataProvider, ctor);

            ctor = dynamicDbContextType.GetConstructor(new Type[] { typeof(DbContextOptions), typeof(DynamicModelBuilder).MakeByRefType() });
            var dbContext = (DynamicDbContext)ctor.Invoke(new Object[] { options, new DynamicModelBuilder(typeDefinitionManager) });

            _ = dbContext.Model; //force OnModelCreating
            return(typeDefinitionManager);
        }
Ejemplo n.º 7
0
        public static DynamicTypeDefinitionManager Create(DynamicMetadataProvider metadataProvider)
        {
            int  dynamicDbContextIndex = Interlocked.Increment(ref _dynamicDbContextIndex);
            Type dynamicDbContextType  = Type.GetType(typeof(DynamicDbContext).FullName + dynamicDbContextIndex.ToString("D2"));

            if (dynamicDbContextType == null)
            {
                throw new InvalidOperationException("DynamicDbContext out range " + dynamicDbContextIndex.ToString());
            }

            var typeDefinitionManager = new DynamicTypeDefinitionManager(dynamicDbContextType, metadataProvider.InformationSchema);

            ConstructorInfo  ctor    = dynamicDbContextType.GetConstructor(new Type[] { typeof(DbContextOptions), typeof(DynamicModelBuilder).MakeByRefType() });
            DbContextOptions options = CreateOptions(metadataProvider.InformationSchema.DynamicDbContextOptions, dynamicDbContextType);
            var dbContext            = (DynamicDbContext)ctor.Invoke(new Object[] { options, new DynamicModelBuilder(metadataProvider, typeDefinitionManager) });

            _ = dbContext.Model; //force OnModelCreating
            return(typeDefinitionManager);
        }
Ejemplo n.º 8
0
        public DynamicModelBuilder(DynamicTypeDefinitionManager typeDefinitionManager)
        {
            TypeDefinitionManager = typeDefinitionManager;

            _entityTypes = new Dictionary <String, EntityType>();
        }
 public virtual DynamicTypeDefinitionManager Create(DynamicMetadataProvider metadataProvider)
 {
     return(DynamicTypeDefinitionManager.Create(metadataProvider, CreateDynamicDbContextType()));
 }
Ejemplo n.º 10
0
 public DynamicDbContext01(DbContextOptions options, DynamicTypeDefinitionManager typeDefinitionManager)
     : base(options, typeDefinitionManager)
 {
 }
Ejemplo n.º 11
0
 protected DynamicDbContext(DbContextOptions options, DynamicTypeDefinitionManager typeDefinitionManager) : base(options)
 {
     TypeDefinitionManager = typeDefinitionManager;
 }
Ejemplo n.º 12
0
 public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager)
 {
     _typeDefinitionManager    = typeDefinitionManager;
     _dynamicEntitySetAdapters = CreateEntitySetAdapters(typeDefinitionManager);
 }
Ejemplo n.º 13
0
 public DynamicEdmModelMetadataProvider(IModel model, DynamicTypeDefinitionManager typeDefinitionManager) : base(model)
 {
     _typeDefinitionManager = typeDefinitionManager;
 }