在描述的通用存储库中 here , 使用单个数据库上下文 internal SchoolContext context;
。我想构建一个通用存储库,但因为我正在使用多个数据库(多个连接字符串),所以我不想对数据库上下文进行硬编码。有没有一种方法不需要为不同的数据库上下文重写相同的方法?
最佳答案
只是让上下文通用
将通用存储库更改为如下所示:
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>();
}
现在您可以为任何类型的上下文实例化存储库。
关于c# - 具有通用数据库上下文的存储库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847827/