Моя ситуация очень похожа на эту ссылку или хотя бы мой код похож, и я пытаюсь найти способ применить этот же метод в синтаксисе .NET Core.
Пропустить строку подключения кодовому DbContext
Мой конкретный код выглядит следующим образом:
public partial class CompanyFormsContext : DbContext
{
public CompanyFormsContext()
: base("name=CompanyFormsContext")
{
}
public CompanyFormsContext(string connName)
: base("name=" + connName)
{
}
...
}
Я получаю сообщение об ошибке:
Ошибка CS1503 Аргумент 1: невозможно преобразовать из 'string' в 'Microsoft.EntityFrameworkCore.DbContextOptions' CompanyForms..NETCoreApp, Version = v1.0
когда я просматриваю скобки в base("name=CompanyFormsContext")
или base("name=" = connName)
.
Каков правильный способ реализации этой функции в .NET Core?
Edit:
Я хотел поделиться тем, что у меня есть следующая информация для подключения к базе данных в моем файле 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;"
}
}
и я нашел следующую ссылку Добавление DbContextOptions в Startup.cs, не регистрирующую хранилище данных на веб-сайте, и мне интересно, достаточно ли простого protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
исправить мое соединение или нет?
Из ссылки:
services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MyDbContext>(
options =>
options.UseSqlServer(Configuration.Get("Data:CompanyFormsContext:ConnectionString"))
);
Нужен ли мне такой сервис в моем Startup.cs?