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); }
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)); } }
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)); }
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); }
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); }
public DynamicModelBuilder(DynamicTypeDefinitionManager typeDefinitionManager) { TypeDefinitionManager = typeDefinitionManager; _entityTypes = new Dictionary <String, EntityType>(); }
public virtual DynamicTypeDefinitionManager Create(DynamicMetadataProvider metadataProvider) { return(DynamicTypeDefinitionManager.Create(metadataProvider, CreateDynamicDbContextType())); }
public DynamicDbContext01(DbContextOptions options, DynamicTypeDefinitionManager typeDefinitionManager) : base(options, typeDefinitionManager) { }
protected DynamicDbContext(DbContextOptions options, DynamicTypeDefinitionManager typeDefinitionManager) : base(options) { TypeDefinitionManager = typeDefinitionManager; }
public DynamicDataAdapter(DynamicTypeDefinitionManager typeDefinitionManager) { _typeDefinitionManager = typeDefinitionManager; _dynamicEntitySetAdapters = CreateEntitySetAdapters(typeDefinitionManager); }
public DynamicEdmModelMetadataProvider(IModel model, DynamicTypeDefinitionManager typeDefinitionManager) : base(model) { _typeDefinitionManager = typeDefinitionManager; }