在描述的here通用存储库中,使用了单个数据库上下文internal SchoolContext context;
。我想构建一个通用的存储库,但因为我使用多个数据库(多个连接字符串),我不想硬编码数据库上下文。有没有办法做到这一点,不需要为不同的数据库上下文重写相同的方法?
答案 0 :(得分:5)
只需将上下文设为通用
将通用存储库更改为例如:
public class GenericRepository<TContext, TEntity>
where TContext : DbContext
where TEntity : class
{
internal TContext context;
internal DbSet<TEntity> dbSet;
public GenericRepository(TContext context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}
...
现在,您可以为任何类型的上下文实例化存储库。