簡體   English   中英

如何在DBContext中具有多個數據庫?

[英]How to have multiple databases in DBContext?

我有多個相似的數據庫,並且我的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);
    }
}

謝謝大家的回答。 我必須更新服務才能為每個數據庫做一個循環,並為每個查詢累積結果,如下所示:

            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;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM