存储库模式与通用数据库上下文

时间:2013-12-30 21:25:20

标签: c# repository-pattern

在描述的here通用存储库中,使用了单个数据库上下文internal SchoolContext context;。我想构建一个通用的存储库,但因为我使用多个数据库(多个连接字符串),我不想硬编码数据库上下文。有没有办法做到这一点,不需要为不同的数据库上下文重写相同的方法?

1 个答案:

答案 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>();
        }
 ...

现在,您可以为任何类型的上下文实例化存储库。