Невозможно восстановить БД с помощью EF Codefirst - PullRequest
2 голосов
/ 02 марта 2012

У меня была рабочая БД EF Codefirst.Я внес некоторые изменения в свои сущности и хотел восстановить БД.Из-за несоответствующих ошибок кодирования, которые с тех пор были исправлены, это не восстановило бы.Поэтому я решил, что могу просто удалить БД из SQLExpress и позволить EF воссоздать ее.Однако этого не произошло.Вместо этого я теперь получаю сообщение об ошибке.

Невозможно открыть базу данных "DataAccessTest.MyDBContext", запрошенную при входе в систему.Ошибка входаОшибка входа для пользователя «Сервер \ Администратор».

Также в veiwer события я получаю сообщение об ошибке.

Причина: не удалось открыть явно указанную базу данных.

Что, конечно, делает с тех пор, потому что его там нет.Но я не знаю, почему это помешало бы воссозданию БД.

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

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

Боюсь, я испортил какой-то фоновый файл, который используется EF или Visual Studio для работыс конкретной базой данных, и я не могу понять, как ее очистить.

Любые мысли будут оценены.

Ответы [ 4 ]

0 голосов
/ 11 июня 2013

Если вы знаете имя удаленной БД, вручную создайте пустую базу данных с тем же именем, используя sql server management studio.Как только EF найдет БД с именем, которое ищет, он будет счастлив.

0 голосов
/ 08 марта 2012

Где создаются физические файлы базы данных?У меня такое чувство, что вы столкнулись с проблемой, когда в каталоге находятся существующие базы данных mdf и ldf файлыИди туда и посмотри.

0 голосов
/ 13 ноября 2012

Обходной путь - изменить атрибут Initial Catalog в строке подключения файла Web.config.Это не решение, но работает.Актуальные решения этой проблемы очень приветствуются.

0 голосов
/ 02 марта 2012

Попробуйте вручную удалить БД и использовать инициализатор DropCreateDatabaseIfModelChanges, как этот.MyDbInitializer : DropCreateDatabaseIfModelChanges<MyContext>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...