Я столкнулся с точно такой же проблемой, как описано здесь (прочтите раздел «Невозможно подключиться к удаленному файлу MDF»), но решение проблемы там не указано ...
Короче говоря, проблема в том, что после удаления .mdf
файла возникает следующее исключение, когда я пытаюсь получить доступ к БД с помощью EF 5.0.
DataException-> EntityException-> SqlException:
невозможно прикрепить файл '{0}' как базу данных '{1}'
Я удалил файл БД и теперь получаю неприятное сообщение об ошибке при запуске приложения, ожидающего, что оно будет использовать инициализатор. Как это исправить?
sql-server
asp.net-mvc
visual-studio-2012
entity-framework-5
localdb
Шимми Вайцхандлер
источник
источник
Ответы:
Если вы удалите файл БД, он все равно останется зарегистрированным в SqlLocalDB. Иногда исправляет удаление БД. Вы можете сделать это из командной строки.
Выполните следующие команды:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
источник
v11.0
относится к SQL LocalDB 2012. Если вы используете LocalDB 2014, MSMSSqlLocalDb
вместо этого переименовала его в .Для тех, кто все еще ищет решение ...
Перейдите в View / SQL Server Object Explorer и удалите базу данных из подузла (localdb) \ v11.0!
По сути, сохраняется локальная база данных, в которой должны быть файлы, и если вы хотите удалить файлы базы данных, убедитесь, что вы удалили их из этой утилиты проводника, а не вручную.
источник
Сначала я попробовал решение JSobell, но не увидел там свою базу данных. Я запускал команды CodingWithSpike из командной строки VS Developer, но это тоже не сработало. Наконец, я запустил те же команды CodingWithSpike из консоли диспетчера пакетов, и это сработало.
PM> sqllocaldb.exe stop v11.0 LocalDB instance "v11.0" stopped. PM> PM> sqllocaldb.exe delete v11.0 LocalDB instance "v11.0" deleted. PM> sqllocaldb.exe start v11.0 LocalDB instance "v11.0" started.
источник
Хорошо.
Мое решение было простым, я решил использовать локальный сервер:
Я изменил
DataSource
атрибут в строке подключения с:Кому:
Другое решение - войти в LocalDb через SQL Management Studio и попытаться удалить эту базу данных:
Однако у меня это не сработало, когда я пытаюсь удалить его, он говорит: «НАЗВАНИЕ: Microsoft SQL Server Management Studio.
Когда я пытаюсь отсоединить его, база данных не появляется в списке для выбора отсоединения, «Перевести в автономный режим» также приводит меня к ошибке, указанной выше.
Это заставляет меня думать, что это серьезная ошибка в LocalDB.
источник
Самое простое решение - просто изменить имя вашей БД в строке подключения. См. Альтернативные решения в блоге Rowan Millers Как удалить базу данных из Visual Studio 2012 . Мы надеемся исправить эту проблему в следующих выпусках.
источник
Лучший и простой ответ, который я только что решил сейчас, просто используйте имя сервера ur sql в качестве источника данных, начальный каталог - это имя вашей базы данных, а затем удалите строку mdf
источник
В моем случае я использую миграции, а в конфигурации я просто изменил имя класса dataContext и dataContext (просто переименуйте), затем повторите попытку, и это помогло
источник
Для SQL 2014 следуйте выбранному ответу CodingWithSpike и этому комментарию
источник
v11.0
наProjectsV12
. По крайней мере, на моей машине :-).У меня была такая же проблема, и я решил ее, вручную установив папку «DataDirectory» в другую папку в двоичных файлах моего приложения.
Я помещаю эту строку в метод Global.asax Application_Start:
Моя строка подключения в настоящее время установлена на это:
источник
DataDirectory
чтоApp_Data
по умолчанию уже установлено локальное значение, поэтому, если это явно не было изменено ранее, ваш код ничего не делает.Я мог бы исправить это, переименовав имя базы данных в строке подключения с aspnet- {numbers} по умолчанию на простое имя, это сработало.
источник
Подключитесь к (LocalDb) \ v11.0 с помощью студии управления сервером Sql, удалите db, а затем выполните обновление базы данных в консоли диспетчера пакетов.
источник
У меня такая же проблема. Я выполнил следующие команды в консоли диспетчера пакетов и устранил проблему
sqllocaldb.exe stop MSSqlLocalDb sqllocaldb.exe delete MSSqlLocalDb
источник