【问题标题】:I Want Using two DbContext asp.net core我想使用两个 DbContext asp.net 核心
【发布时间】:2020-10-01 00:59:52
【问题描述】:

我想为 myapp 使用两个数据上下文

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

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

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

【问题讨论】:

  • 能否请您更新每个 DbContext 的问题?
  • 是的,我可以更新数据库

标签: asp.net-core


【解决方案1】:

您可以在您的应用程序中使用多个 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

【讨论】:

  • 如果您想知道为什么 DbContextOptions 在您的解决方案中不起作用,请确保您输入了 DbContextOptions ;)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-02-01
    • 1970-01-01
    • 2018-11-21
    • 2017-10-01
    • 2020-09-26
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多