Строки подключения и настройки приложения в asp. net core - PullRequest
0 голосов
/ 03 февраля 2020

Я раньше не работал в net ядре, и у меня возникли некоторые проблемы со строкой подключения. Я пытаюсь получить строку подключения в моем контроллере, например,

 SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["DefaultConnection"].ToString());

, но я получаю 'Ссылку на объект, не установленную для экземпляра объекта.' в моем контроллере. Вот как выглядят мои appsettings. json

"ConnectionStrings": {
    "DefaultConnection": "Server=(server)\\\\mssqllocaldb;Database=dbName;User ID=user;Password=123123"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Вы не можете получить строку подключения непосредственно в вашем контроллере, но вы можете ввести конфигурацию, а затем вы можете получить доступ к строке подключения, как эта, в вашем контроллере

public class HomeController : Controller
{
    public HomeController (IConfiguration configuration)
    {
        var connectionString = configuration.GetConnectionString("DefaultConnection")
    }
}

0 голосов
/ 03 февраля 2020

Использование ConfigurationManager предполагает наличие "App.config" в вашем проекте, а не настроек приложения. json. Пример:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Server=(server)\\\\mssqllocaldb;Database=dbName;User ID=user;Password=123123" />
  </connectionStrings>
</configuration>

Для использования

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());
...