我想使用两个DbContext asp.net核心

时间:2019-07-14 12:24:25

标签: asp.net-core

我要为myapp使用两个datacontext

 services.AddDbContext<AuthenticationContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("IdentityConnection")));

                services.AddDbContext<DataContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("MyConection"))
                );

传递给AuthenticationContext构造函数的DbContextOptions必须是DbContextOptions。注册多个DbContext类型时,请确保每种上下文类型的构造函数都具有DbContextOptions参数,而不是非通用DbContextOptions参数。'

2 个答案:

答案 0 :(得分:1)

ApplicationDbContext中的Startup.cs /身份之前注册您的其他上下文。

services.AddDbContext<MyDbContext>
services.AddDbContext<ApplicationDbContext>

答案 1 :(得分:0)

您可以在应用程序中使用多个dbcontext,将新的dbcotext添加到第一个dbcontext中。

1。创建dbContext

public class DataContext: DbContext
{
    public DataContext(DbContextOptions<DataContext> options)
        : base(options)
    {
    }
}

2.appsettings.json:

"ConnectionStrings": {
    "IdentityConnection": "xxx",
    "MyConection": "xxx"
},

3。注册dbcontext

 services.AddDbContext<DataContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("MyConection"))
            );

如果您想添加迁移,只需指定要使用的上下文,例如:

Add-Migration init -Context DataContext
Update-Database -Context DataContext