c# - 具有通用数据库上下文的存储库模式

标签 c# repository-pattern

在描述的通用存储库中 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/

相关文章:

c# - 将 EF 实体映射到维护 ICollection 和延迟加载的 ViewModel

c# - 删除 Xslt 中的属性

c# - 将 base64Binary 转换为 pdf

architecture - 我可以从表示层访问存储库吗?

asp.net-mvc-3 - 使用 Autofac 进行 MVC 3 通用存储库注入(inject)

c# - 域实体中的外键属性

c# - 在 Bot Framework Emulator 中测试提供无效 token

c# - 独立存储中的绑定(bind)图像

c# - 如何根据用户输入创建数组长度

c# - DDD : Entity identity before being persisted