我正在玩新的ASP.NET 5 beta 8,並遇到了麻煩,當我有兩個dbcontext。ASP.NET 5多個dbcontext問題
我有以下項目結構。
-Data(Identity 3 db with other entities)
-Resources (Contains a db with translations)
-WebApp
剝奪了一些代碼Startup.cs在Web應用程序
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<DatabaseContext>(opt => opt.UseSqlServer(Configuration["Data:MainDb:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<DatabaseContext>()
.AddDefaultTokenProviders();
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ResourceDbContext>(opt => opt.UseSqlServer(Configuration["Data:Resources:ConnectionString"]));
services.AddTransient<IResourceDbContext, ResourceDbContext>();
services.AddTransient<IDatabaseContext, DatabaseContext>();
}
在這兩個ResourceDbContext和DatabaseContext我下面
public ResourceDbContext(DbContextOptions options) : base(options)
{
_connectionString = ((SqlServerOptionsExtension)options.Extensions.First()).ConnectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlServer(_connectionString);
}
然而,當我從appsettings.json閱讀我的ConnectionStrings我在ConfigureServices中收到了正確的值。但DbContextOptions只包含最新加載的值,在這種情況下是Resources的連接字符串。因此,這兩個dbcontext建立到資源數據庫的連接。
我無法找到任何關於此的信息。
太棒了,現在工作正常! – user1619493