Ejemplo n.º 1
0
        public DataContext()
        {
            string connString = ConfigurationManager.ConnectionStrings["FormHost"].ConnectionString;

            lock (_lockObj)
            {
                if (_m == null)
                {
                    var builder = new DbModelBuilder();

                    RegisterConfigurations(builder);
                    var conn = new SqlConnection(connString);

                    _m = builder.Build(conn);
                    conn.Close();
                }
                var db = new CNDDbContext(connString, _m.Compile());
                SetOC(db);
            }

            Users           = new UserRepository(this);
            Fills           = new FillRepository(this);
            Organizations   = new OrganizationRepository(this);
            DocumentTypes   = new DocumentTypeRepository(this);
            DocTypeVersions = new DocTypeVersionRepository(this);
        }
Ejemplo n.º 2
0
        internal static DbCompiledModel GetCompiledModel(string connectionName)
        {
            return(registeredModels.GetOrAdd(connectionName, connectionString =>
            {
                var builder = new DbModelBuilder();
                CFConfig.Default.ParallelScanAttributes <TableAttribute>((type, attr) =>
                {
                    //注册实体类型
                    typeof(DynamicContext).GetMethod("ConfigMap", BindingFlags.NonPublic | BindingFlags.Static).MakeGenericMethod(type).Invoke(null, new object[] { builder });
                    //设置TableAttribute属性
                    var config = builder.Types().Where(entity => entity == type);
                    config.Configure(entity =>
                    {
                        var entityConfig = DataEntityUtils.Entity(type);
                        entity.HasEntitySetName(entityConfig.TableAttribute.TableName);
                        entity.ToTable(entityConfig.TableAttribute.TableName);
                        entity.HasKey(entityConfig.TableAttribute.PrimaryKey);
                        foreach (var field in entityConfig.ColumnAttributes)
                        {
                            if (field.Value.IsExtend /* && !field.Value.IsInherit*/)
                            {
                                entity.Ignore(field.Key);
                            }
                        }
                    });
                });

                DbConnection connection = GetConnection(connectionString);
                DbModel model = builder.Build(connection);
                return model.Compile();
            }));
        }
Ejemplo n.º 3
0
        public static DbCompiledModel CreateModel(LazyInternalContext internalContext)
        {
            DbModelBuilder modelBuilder = internalContext.CreateModelBuilder();
            DbModel        dbModel      = internalContext._modelProviderInfo == null?modelBuilder.Build(internalContext._internalConnection.Connection) : modelBuilder.Build(internalContext._modelProviderInfo);

            internalContext._modelBeingInitialized = dbModel;
            return(dbModel.Compile());
        }
        public ModificationCommandTreeGenerator(DbModel model, DbConnection connection = null)
        {
            DebugCheck.NotNull(model);

            _compiledModel = model.Compile();
            _connection    = connection;

            using (var context = CreateContext())
            {
                _metadataWorkspace
                    = ((IObjectContextAdapter)context).ObjectContext.MetadataWorkspace;
            }
        }
Ejemplo n.º 5
0
 private void BuildDbModels()
 {
     dbModels = new Dictionary <string, DbCompiledModel>();
     schemaSpacesToEntities = entityTypeDiscovery.DiscoverEntities();
     foreach (string schemaSpace in schemaSpacesToEntities.Keys)
     {
         DbModel model = BuildDbModel(schemaSpace);
         if (model != null)
         {
             dbModels.Add(schemaSpace, model.Compile());
         }
     }
 }
        private static DbCompiledModel BuildModel(Type[] types)
        {
            var builder = new DbModelBuilder();

            foreach (var configuration in types
                     .Select(Domain.Configuration.Current.Container.Resolve)
                     .Cast <IEntityModelConfiguration>().ToArray())
            {
                configuration.ConfigureModel(builder.Configurations);
            }

            DbModel model = builder.Build(new SqlConnection(ConnectionString));

            return(model.Compile());
        }
Ejemplo n.º 7
0
        //protected override bool ShouldValidateEntity(DbEntityEntry entityEntry)
        //{
        //    return base.ShouldValidateEntity(entityEntry);
        //}

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //modelBuilder.Entity<BlogPost>().ToTable("tbl_blog_post");

            var typesToRegister = Assembly.GetExecutingAssembly().GetTypes()
                                  .Where(type => !String.IsNullOrEmpty(type.Namespace))
                                  .Where(type => type.BaseType != null && type.BaseType.IsGenericType &&
                                         type.BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration <>));

            foreach (var type in typesToRegister)
            {
                dynamic configInstance = Activator.CreateInstance(type);
                modelBuilder.Configurations.Add(configInstance);
            }


            //modelBuilder.ComplexType<BillingAddress>()
            //            .Property(p => p.CreditCardNumber)
            //            .HasColumnName("CardNumber");
            //modelBuilder.ComplexType<Address>()
            //            .Property(p => p.StreetAddress)
            //            .HasColumnName("StreetAddress");



            //var count = this.Database.SqlQuery<int>("SELECT COUNT(*) FROM Customers");

            //These are all to find out the EF objects
            ConfigurationRegistrar registrar = modelBuilder.Configurations;

            ConventionsConfiguration conventions = modelBuilder.Conventions;

            DbModel  dbModel  = modelBuilder.Build(this.Database.Connection);
            EdmModel edmModel = dbModel.ConceptualModel;
            EntityContainerMapping containerMapping   = dbModel.ConceptualToStoreMapping;
            DbProviderInfo         dbProviderInfo     = dbModel.ProviderInfo;
            DbProviderManifest     dbProviderManifest = dbModel.ProviderManifest;
            EdmModel        dbModelStoreModel         = dbModel.StoreModel;
            DbCompiledModel dbCompiledModel           = dbModel.Compile();


            PropertyConventionConfiguration propertyConvention = modelBuilder.Properties();
            TypeConventionConfiguration     typeConvention     = modelBuilder.Types();

            //modelBuilder.RegisterEntityType();

            //registrar.AddFromAssembly()
            //conventions.AddFromAssembly();


            //propertyConvention
            //    .Where(info => info.GetType() is typeof(string))
            //    .Configure(cfg => cfg.HasMaxLength(200));
            //typeConvention.Configure(cfg => cfg.MapToStoredProcedures());


            //All Configurations
            //System.Data.Entity.ModelConfiguration.Configuration


            //All Conventions
            //System.Data.Entity.ModelConfiguration.Conventions


            //modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

            base.OnModelCreating(modelBuilder);
        }