gpt4 book ai didi

c# - 如何在 .NET Core 中实现 DbContext 连接字符串?

转载 作者:IT王子 更新时间:2023-10-29 04:23:32 28 4
gpt4 key购买 nike

我的情况与此链接非常相​​似,或者至少我的代码是相似的,我正在尝试找到一种在 .NET Core 语法中应用相同方法的方法。

Pass connection string to code-first DbContext

我的具体代码如下:

public partial class CompanyFormsContext : DbContext
{
public CompanyFormsContext()
: base("name=CompanyFormsContext")
{
}

public CompanyFormsContext(string connName)
: base("name=" + connName)
{
}
...
}

我收到一条错误消息:

Error CS1503 Argument 1: cannot convert from 'string' to 'Microsoft.EntityFrameworkCore.DbContextOptions' CompanyForms..NETCoreApp,Version=v1.0

当我检查 base("name=CompanyFormsContext")base("name="= connName) 中的括号时。

在 .NET Core 中实现此功能的正确方法是什么?

编辑:

我想分享一下,我的 appsettings.json 文件中有以下数据库连接信息:(但是,我在 startup.cs 中没有设置)

  "Data": {
"CompanyFormsContext": {
"ConnectionString": "Server=(localdb)\\projectsv13;Database=companyforms;Trusted_Connection=True;"
},
"CompanyFormsContextQA": {
"ConnectionString": "Server=(localdb)\\projectsv13;Database=companyforms;Trusted_Connection=True;"
}
}

我找到了以下链接 Adding DbContextOptions in Startup.cs not registering data store在网站上,我想知道一个简单的 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 是否足以修复我的连接?

来自链接:

services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MyDbContext>(
options =>
options.UseSqlServer(Configuration.Get("Data:CompanyFormsContext:ConnectionString"))
);

我的 Startup.cs 中需要这种服务吗?

最佳答案

另一种选择是调用采用 DbContextOptions 的基本构造函数:

public BooksContext(string connectionString) : base(GetOptions(connectionString))
{
}

private static DbContextOptions GetOptions(string connectionString)
{
return SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), connectionString).Options;
}

关于c# - 如何在 .NET Core 中实现 DbContext 连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38878140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com