1

У меня есть .net-приложение с ядром сущности. При запуске Entity Framework миграции или обновления с помощью командной строки, я получаю «значение не может быть пустым Имя параметра:. ConnectionString»Entity Framework Core Connection String - переменная окружения

строка

соединение хранится в переменной окружения:

ConnectionStrings__SomeContextConnection ...(localdb)\\MSSQLLocalDB... 

Однако, когда Я двигаюсь, что точно такую ​​же строку подключения в файл конфигурации .json:

"ConnectionStrings": { 
    "SomeContextConnection": "...(localdb)\\MSSQLLocalDB..." 
} 

Затем каркасные сущность инструменты признают строку соединения без проблем. При отладке кода, в Startup.cs:

var connectionString = _config.GetConnectionString("SomeContextConnection"); 

переменная ConnectionString устанавливается в правильной последовательности, когда строка хранится в либо из двух мест, но он выходит из строя при попытке подключиться к базы данных при использовании среды var.

(примечание: в переменной окружения случае, строка соединения убежали так идет от

(localdb)\\MSSQLLocalDB... 

в

(localdb)\\\\MSSQLLocalDB... 

но проблема сохраняется даже после удаления дополнительных бэк-слэш)

UPDATE: Когда строка подключения перемещается в переменную среды уровня Windows, она работает нормально. Кажется, что это только проблема при использовании переменных среды Visual Studio.

+0

попробовать поставить обратный слеш –

+0

Это было то, что я упомянул в «примечании» выше, но это было нет помощи. – Wake

+0

Я думаю, что это связано с Project.Json, проверьте, если вы прокомментировали строки в приложении запуска или уровне БД, если у вас есть. вы не можете прокомментировать строки в файле JSON – cwishva

ответ

0

Это работает, если вы удалите двойную обратную косую черту после (localdb), так что есть только одна обратная косая черта.

Так как только вы исправлен, что в переменной окружения это должно выглядеть примерно так:

Server=(localdb)\MSSQLLocalDB...

Смежные вопросы