MrLonely_2 Ответов: 1

При создании базы данных в ASP.NET код CORE 1.1 впервые появился в visual studio 2017


Привет ребята,

Я создал ASP.NET основной 1.1 код первый проект в Visual Studio 2017,

Я сделал свои классы моделей и класс AppContext для базы данных, но моя база данных была создана только тогда, когда я сделал миграцию,

эта ошибка появляется при попытке добавить какие-либо данные в базу данных:
System.Data.SqlClient.SqlException: 'не удается открыть базу данных "Mydatabase", запрошенную логином. Вход в систему не удался.

Ошибка входа пользователя 'Имя_сервера-3FT4ANB\Моеимя''.

Но если я сначала сделаю миграцию, то этой ошибки не произойдет ?

Что я уже пробовал:

Я ищу, но не могу найти то, что мне нужно, чтобы понять этот момент

1 Ответов

Рейтинг:
2

David_Wimbley

Следующие комментарии - это то, что я видел в своем опыте.

Цитата:
Я сделал свои классы моделей и класс AppContext для базы данных, но моя база данных была создана только тогда, когда я сделал миграцию,


Ваша база данных создается, когда вы предпринимаете действие против БД. Например, простой запуск приложения не создаст базу данных, но если вы зарегистрируете пользователя в базе данных (или вставите пользователя), то схема будет обновлена.

Цитата:
Но я думал, что база данных создается, когда я запускаю свое приложение, и каждый раз, когда я запускаю приложение, оно создается с любым обновлением, которое я делаю в классах моделей

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


Ваша база данных не просто знает, чтобы обновить себя на основе кода, Вы либо должны запустить команду Update-Database (Существо Рамочного Код Первого Миграций[^]) или, Похоже, вы можете настроить свой web. config для автоматического обновления базы данных (c# - Entity framework code first-как запустить обновление-база данных для производственной базы данных - переполнение стека[^]) но я бы подумал, что это ужасная идея, так как вы будете совершать изменения в БД, которые, не будучи протестированы, могут сломать ваше приложение.

Цитата:
Но как насчет использования приложения на производственном уровне конечными пользователями ?


Не знаю, о чем вы здесь спрашиваете, но использование кода сначала прекрасно подходит для производства. Просто создайте процесс развертывания, который экранирует любые миграции, связанные с производством (именно здесь я бы не советовал автоматически обновлять БД через web.config), которые могут нарушить вашу среду.


MrLonely_2

Спасибо тебе, Дэвид, за твой ответ, это именно то, что мне нужно:
Ваша база данных создается, когда вы предпринимаете действие против БД.
Но эта ошибка появляется при попытке добавить какие-либо данные в базу данных:
System.Data.SqlClient.SqlException: 'не удается открыть базу данных "Mydatabase", запрошенную логином. Вход в систему не удался.

Ошибка входа пользователя 'Имя_сервера-3FT4ANB\Моеимя''.
Но если я сначала сделаю миграцию, то этой ошибки не произойдет ?

David_Wimbley

Я думаю, что ваша ошибка сама по себе довольно ясна. Миграция создает вашу базу данных и все, что требуется, если вы попытаетесь запустить свое приложение перед миграцией...ваша база данных не существует.

Системы".Данных.Sqlclient как.Ситуацию sqlexception: не удается открыть базу данных "данных mydatabase", запрашиваемую именем входа. Вход в систему не удался.

Ошибка входа пользователя 'Имя_сервера-3FT4ANB\Моеимя''."

Похоже, что Mydatabase в этот момент не существует, и именно поэтому вы получаете эту ошибку.

MrLonely_2

да, но каково же решение ?