Я устанавливаю новую базу данных с Entityframework Core и первым подходом к коду. Я настроил класс контекста, как в приведенном ниже листинге кода, и все необходимые классы для таблиц базы данных.
Теперь я хочу создать новую базу данных с
using (var context = new MyContext())
{
context.Database.EnsureCreated();
}
Но я получаю сообщение об ошибке, что строка подключения не может быть нулевой.
Моя строка подключения установлена в файле appsettings.json, и я копирую ее в выходной каталог при сборке проекта.
Я пробовал разные способы получить строку подключения из файла appsettings, но все с одинаковым результатом. В свойстве Configuration в классе Startup я вижу, что файл appsettings загружен правильно, но когда я хочу получить строку с
ConnectionString = Configuration["Connectionstrings:MyConnection"];
ConnectionString всегда равно нулю.
У меня есть это в моем файле Startup.cs:
public class Startup
{
public static string ConnectionString { get; private set; }
public IConfigurationRoot Configuration { get; set; }
public Startup(IHostingEnvironment _environment)
{
Configuration = new ConfigurationBuilder()
.SetBasePath(_environment.ContentRootPath)
.AddJsonFile("appsettings.json")
.Build();
}
со следующим в Configure - Метод
using (var context = new MyContext())
{
context.Database.EnsureCreated();
}
И в моем классе контекста у меня есть следующий код
public class MyContext : DbContext
{
public MyContext()
{
}
public static string GetConnectionString()
{
return Startup.ConnectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder _builder)
{
_builder.UseSqlServer(GetConnectionString());
}
Так что теперь, когда я запускаю приложение, я получаю сообщение об ошибке в методе OnConfiguring - метод, что строка подключения не может быть нулевой.
И мой файл appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Warning"
}
},
"Connnectionstrings": {
"MyConnection": "server=.;database=MyDatabase;trusted_connection=true;MultipleActiveResultSets=True"
},
}