在EntityFramework和.net核心依赖注入中使用一个dbContext和多个连接字符串

时间:2018-06-12 13:28:53

标签: c# .net entity-framework .net-core

我使用 EntityFramework Core .net core 2.0 在项目中工作,我需要连接到多个数据库为了获取数据来执行一个cron,我在DbContext.cs中注入了startup.cs,如上所述:

  services.AddDbContext<DbContext.cs>();

我在我的UnitOfWork.cs中使用它:

public class UnitOfWork<Context> : IUnitOfWork where Context : DbContext
    {
        public DbContext _context { get; set; }

        public DbContext getContext()
        {
            return _context;
        }
        public UnitOfWork(DbContext context)
        {
            _context = context;
        }
}

由依赖注入管理。 我的问题是,是否可以使用一个注入的dbcontext实例,并在运行时需要更改连接,我真的没有找到一个明确的解决方案,我试图使用一个setter并实现一个新的dbContext evry时间我需要连接到一个新的数据库,但它看起来很漂亮:

public void SetContext(DbContext context)
        {
            _context = context;
        }
public DbContext _context { get; set; }

1 个答案:

答案 0 :(得分:0)

  

是否可以使用一个注入的dbcontext实例,并在需要的运行时更改连接,

没有。如果您的工作单元需要连接到多个数据库,则需要多个DbContext实例。