Почему мое приложение ASP.NET MVC с первым кодом неожиданно не работает только потому, что я открыл его из другого места? - PullRequest
0 голосов
/ 01 января 2019

У меня есть приложение ASP.NET MVC с первым кодом, которое работало без сбоев и могло получать доступ к данным из SQL Server, пока я не скопировал проект в другое место и не открыл его оттуда.

Я получаю следующие ошибки:

System.Data.DataException
HResult = 0x80131501
Сообщение = Исключительная ситуация при инициализации базы данных.Подробности см. В InnerException.
Source =

StackTrace:

Внутреннее исключение 1:
EntityException: Базовый поставщик не удалось открыть.

Внутреннее исключение 2:
SqlException: База данных 'C: \ Users \ BICHE \ Desktop \ FinalCSharpChallenge \ FinalCSharpChallenge \ App_Data \ StudentContextDB.mdf' уже существует.Выберите другое имя базы данных.
Невозможно прикрепить файл 'C: \ Users \ BICHE \ Desktop \ MY REPOS3 \ The-Tech-Academy-C-Coding-Project \ FinalCSharpChallenge \ FinalCSharpChallenge \ App_Data \ StudentContextDB.mdf' в качестве базы данных'StudentContextDB'.

Мои вопросы: почему это происходит только потому, что я переместил проект со своего рабочего стола в другое место на моем компьютере?

Может ли это быть решено с помощью оператора "if", который продолжает использовать StudentContextDB, если он существует, и создает его, если его нет?(Мой инструктор предложил это, так что я думаю, что сначала попробую)

Наконец, если это правильное решение, какой будет синтаксис для этого конкретного утверждения?Я видел инструкции по удалению и созданию, но не «Использовать или создавать».

Я ценю любые идеи, которые могут возникнуть у людей по этому вопросу!

Ответы [ 2 ]

0 голосов
/ 01 января 2019

SqlException: База данных '...' уже существует.Выберите другое имя базы данных.

Похоже, ваш код пытается воссоздать базу данных ... Если это новое развертывание, возможно, вам нужна новая база данных;Вы должны изменить свой код так, чтобы расположение базы данных относительно к домашнему каталогу вашего приложения.

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

0 голосов
/ 01 января 2019

Короткая версия здесь заключается в том, что сервер БД все еще имеет ссылку на старое местоположение базы данных.Вы переместили его и попытались запустить приложение и указать новое местоположение базы данных с тем же именем.Сервер БД не знает, как с этим справиться.Было бы лучше отсоединить базу данных от сервера БД, а затем переместить файлы.

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