Exemplo n.º 1
0
        public static IModel BuildDbCompiledModel(DatabaseType dbType, List <Type> entityTypes = null)
        {
            ModelBuilder modelBuilder = DbFactory.GetProvider(dbType).GetModelBuilder();
            List <Type>  needTypes    = entityTypes?.Count > 0 ? entityTypes : _entityTypeMap.Values.ToList();

            needTypes.ForEach(x =>
            {
                var entityTypeBuilder = modelBuilder.Entity(x);

                //主键
                var keys = x.GetCustomAttribute <KeysAttribute>();
                if (keys != null)
                {
                    entityTypeBuilder.HasKey(keys.PropertyNames);
                }

                //索引
                var indexs = x.GetCustomAttributes <IndexAttribute>();
                if (indexs != null)
                {
                    indexs.ToList().ForEach(aIndex =>
                    {
                        entityTypeBuilder.HasIndex(aIndex.PropertyNames).IsUnique(aIndex.IsUnique);
                    });
                }
            });
            //支持IEntityTypeConfiguration配置
            needTypes.Select(x => x.Assembly).ToList().ForEach(aAssembly =>
            {
                modelBuilder.ApplyConfigurationsFromAssembly(aAssembly);
            });

            return(modelBuilder.FinalizeModel());
        }
Exemplo n.º 2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="conString">构造参数,可以为数据库连接字符串或者DbContext</param>
 /// <param name="dbType">数据库类型</param>
 public DbRepository(string conString, DatabaseType dbType)
 {
     ConnectionString = conString;
     DbType           = dbType;
     _db       = DbFactory.GetDbContext(conString, dbType);
     _provider = DbFactory.GetProvider(dbType);
 }
Exemplo n.º 3
0
        public static IModel BuildDbCompiledModel(DatabaseType dbType, List <Type> entityTypes = null)
        {
            ModelBuilder modelBuilder = DbFactory.GetProvider(dbType).GetModelBuilder();
            List <Type>  needTypes    = entityTypes?.Count > 0 ? entityTypes : _entityTypeMap.Values.ToList();

            needTypes.ForEach(x =>
            {
                modelBuilder.Model.AddEntityType(x);
            });

            return(modelBuilder.FinalizeModel());
        }
Exemplo n.º 4
0
        public static IModel BuildDbCompiledModel(DatabaseType dbType, List <Type> entityTypes = null)
        {
            ModelBuilder modelBuilder = DbFactory.GetProvider(dbType).GetModelBuilder();
            List <Type>  needTypes    = entityTypes?.Count > 0 ? entityTypes : _entityTypeMap.Values.ToList();

            needTypes.ForEach(x =>
            {
                modelBuilder.Model.AddEntityType(x);
            });
            //支持IEntityTypeConfiguration配置
            modelBuilder.ApplyConfigurationsFromAssembly(_entityTypeMap.Values.First().Assembly);
            return(modelBuilder.FinalizeModel());
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="baseDbContext">BaseDbContext</param>
 public GenericDbAccessor(GenericDbContext baseDbContext)
 {
     _db       = baseDbContext;
     _provider = DbFactory.GetProvider(DbType);
 }
Exemplo n.º 6
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="baseDbContext">BaseDbContext</param>
 public AbstractDbAccessor(BaseDbContext baseDbContext)
 {
     _db       = baseDbContext;
     _provider = DbFactory.GetProvider(DbType);
 }
Exemplo n.º 7
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="baseDbContext">BaseDbContext</param>
 public DbRepository(BaseDbContext baseDbContext)
 {
     _db       = baseDbContext;
     _provider = DbFactory.GetProvider(DbType);
 }