[英]Multiple instances of same DBContext
早上好,
我一直在自己的一個項目中工作,我想知道是否有人知道我的應用程序中是否可以有同一DBContext的多個實例。
我將有2個這樣的數據庫實例在Startup.cs中連接:
services.AddDbContext<MyApplicationDBContext>(options => options.UseSqlServer(_config.GetConnectionString("StringConnection1")));
services.AddDbContext<MyApplicationDBContext>(options => options.UseSqlServer(_config.GetConnectionString("StringConnection2")));
services.AddScoped<IAppRepository, AppRepository>();
這就是我構建MyApplicationDbContext的方式 :
public partial class MyApplicationDBContext : IdentityDbContext<AppUsers>
{
public virtual DbSet<Book> Books{ get; set; }
public virtual DbSet<Film> Films{ get; set; }
public MyApplicationDBContext(DbContextOptions<MyApplicationDBContext> options) : base(options)
{
}
}
最后,我想在我的存儲庫中添加以下內容:
public class AppRepository: IAppRepository
{
private IConfigurationRoot _config;
private MyApplicationDBContext _cntx;
private MyApplicationDBContext _cntx2;
private UserManager<AppUsers> _userManager;
public AppRepository(MyApplicationDbContext cntx, MyApplicationDbContext cntx2, IConfigurationRoot config, UserManager<AppUsers> userManager)
{
_cntx = cntx;
_cntx2 = cntx2;
_config = config;
_userManager = userManager;
}
public async Task<IEnumerable<Book>> GetBookByDatabase(string book, int database)
{
if(database == 1)
return _cntx.GetBook(book);
if(database == 2)
return _cntx2.GetBook(book);
else
return null;
}
}
該代碼的主要目的是擁有一個應用程序實例,該實例可以插入和查詢來自2個不同數據庫的數據。
這是我寫過的第一篇文章,如果我寫錯了東西,對不起。
感謝您的回答。
好吧,如果您的目標是擁有兩個數據庫,那么您要做的就是在兩個連接字符串中指定不同的數據庫名稱。
但是,如果要按用戶分開數據,那么我想說,將用戶名存儲在表的關鍵字段中要好得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.