[英]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.