Строка подключения с нулевым значением в ядре ASP.NET - PullRequest
0 голосов
/ 09 июня 2018

Я хочу подключить мой API к базе данных SQL Server.Я получаю нулевое значение строки подключения в моем классе запуска.Я совершенно не знаю, что я делаю неправильно.Не могли бы вы проверить и сообщить мне, что я должен исправить?Заранее спасибо.

Startup.cs

var connectionSettings = Configuration.GetSection("Connection").Get<ConnectionSettings>();

services.AddDbContextPool<Context>(
      options => options
            .UseSqlServer(connectionSettings.ConnectionString));

Мое appsettings.json соединение ниже:

"Connection": [
{
  "EFMode": "MSSQL",
  "DatabaseName": "Shop",
  "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Shop;Trusted_Connection=True,MultipleActiveResultSets=True"
}

В Program.cs (основной класс):

var db = services.GetService<Context>();

if (db != null)
{
    var cs = services.GetService<ConnectionSettings>();
    db.Database.Migrate();

    var dt = services.GetService<DefaultTriggers>();
}

И мой Context.cs:

var connectionSettings = config.GetSection("Connection").Get<ConnectionSettings>();

var optionsBuilder = new DbContextOptionsBuilder<Context>();
optionsBuilder.UseSqlServer(connectionSettings.ConnectionString);

return new Context(optionsBuilder.Options);

ConnectionSettings.cs

    public class ConnectionSettings
{
    public string ConnectionString { get; set; }
    public string DatabaseName { get; set; }
}

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Вы можете упростить получение строки подключения следующим образом:

var connectionString = config["Connection:ConnectionString"];
0 голосов
/ 09 июня 2018

Вам либо нужно изменить настройки, чтобы у вас был один объект подключения (обратите внимание, что я удалил массив [ ]:

"Connection": {
  "EFMode": "MSSQL",
  "DatabaseName": "Shop",
  "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=Shop;Trusted_Connection=True,MultipleActiveResultSets=True"
}

Или вам нужно указать конфигурациюобъект для загрузки массива ConnectionSettings:

var connectionSettings = Configuration.GetSection("Connection").Get<ConnectionSettings[]>();
var shopConnection = connectionSettings.First(s => s.DatabaseName == "Shop");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...