0

我有多个类似的数据库和我的 ASP.Net Core 2.2 MVC 应用程序,其 EF DBContext 为每个数据库使用不同的连接字符串。我想在一个查询中通过 DBContext 从每个数据库中收集 TABLE1 的信息。我怎样才能做到这一点?

public class DBContext : DbContext
{
    private string _dbconnectionstring;

    public DBContext(string cnn)
        : base()
    {
        _dbconnectionstring = cnn;
    }

    public virtual DbSet<TABLE1> Table1 { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.ApplyConfiguration(new Table1Configuration());
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(_dbconnectionstring);
    }
}
4

1 回答 1

0

谢谢大家的回答。我必须更新我的服务来为每个数据库执行一个循环并为每个查询累积结果,如下所示:

            if (_userService.GetDBName() == "ALL")
        {
            // If Factory selected is ALL, grab all user factories DBName in a list
            var factories = _adm.GetUserFactoriesForCombo(_userService.GetUserId()).Where(f => f.FactoryId > 0);

            // Get all PruchaseOrders from all factories
            List<PurchaseOrders> pos = new List<PurchaseOrders>();
            foreach (var f in factories)
            {
                using (var uow = new OperationsUOW(new OperationsContext(_userService.GetDBContext(f.FactoryDB)), _userService))
                {
                    var npos = uow.PurchaseOrders.GetAll();
                    pos.AddRange(npos);
                }
            }

            return pos;
        }
于 2019-02-25T15:23:34.040 回答