Я переношу проект ASP.NET в ASP.NET Core, и я пытался реализовать функциональность DbContext в .NET Core. Я пытаюсь передать различные данные SQL Server в optionsBuilder, который я передаю как параметр базовому конструктору. У меня есть следующий контекст класс модели:Как передать текст appsettings.json в виде строки подключения SQL в классе модели? (Конкретный пример)
public partial class CompanyFormsContext : DbContext
{
public CompanyFormsContext() : base (CreateOptions(null))
{}
public CompanyFormsContext(string connName) : base (CreateOptions(connName))
{}
//NEED TO CONNECT CONFIGURATION HERE
private static DbContextOptions<CompanyFormsContext> CreateOptions(string connName)
{
var optionsBuilder = new DbContextOptionsBuilder<CompanyFormsContext>();
if (connName == null)
{
optionsBuilder.UseSqlServer("Server=(localdb)\\projectsv13;Database=coforms;Trusted_Connection=True;");
}
else
{
//THIS IS HOW IM TRYING TO MAKE IT
//similar to --> Configuration["Data:CompanyFormsContext:ConnectionString"]"
optionsBuilder.UseSqlServer(Configuration["Data:" + connName + ":ConnectionString"]);
}
return optionsBuilder.Options;
}
...
Я хочу передать в моей информации SQL Server с помощью информации в appsettings.json
которая заключается в следующем:
"Data": {
"CompanyFormsContext": {
"ConnectionString": "Server=(localdb)\\projectsv13;Database=coforms;Trusted_Connection=True;"
},
"CompanyFormsContextQA": {
"ConnectionString": "Server=(localdb)\\projectsv13;Database=coforms;Trusted_Connection=True;"
}
},
Я нашел следующий вопрос, но я считаю, синтаксис немного изменился с момента обновления RC2, потому что я не могу использовать решения, или я делаю это неправильно.
Setting the SQL connection string for ASP.NET 5 web app in Azure
Как я мог бы использовать синтаксис, похожий на Configuration["Data:CompanyFormsContext:ConnectionString"]
для входа SQL Server? Или есть лучший способ сделать это? Что конкретно должно быть в файле автозагрузки? У меня есть следующие:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddOptions();
}
...
При необходимости, я могу упростить вопрос конкретно спросить об использовании appsettings.json
в классе модели. Я понимаю, что у меня есть дополнительная информация для разъяснения конкретной ситуации.
Извините, я этого не понял, чего вы точно хотите? – Hamed
Я обновил свой вопрос, я пытаюсь реализовать Configuration ["Data: CompanyFormsContext: ConnectionString"] в optionsBuilder в классе Model, CompanyFormsContext: DbContext –