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()); }
/// <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); }
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()); }
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); }
/// <summary> /// 构造函数 /// </summary> /// <param name="baseDbContext">BaseDbContext</param> public AbstractDbAccessor(BaseDbContext baseDbContext) { _db = baseDbContext; _provider = DbFactory.GetProvider(DbType); }
/// <summary> /// 构造函数 /// </summary> /// <param name="baseDbContext">BaseDbContext</param> public DbRepository(BaseDbContext baseDbContext) { _db = baseDbContext; _provider = DbFactory.GetProvider(DbType); }