Mam problem dokładnie opisany tutaj (przeczytaj sekcję „Nie można dołączyć do usuniętego pliku MDF”), ale nie podano tam rozwiązania problemu ...
Krótko mówiąc, problem polega na tym, że po usunięciu .mdf
pliku, następujący wyjątek jest zgłaszany, gdy próbuję uzyskać dostęp do bazy danych za pomocą EF 5.0.
DataException-> EntityException-> SqlException:
Nie można dołączyć pliku „{0}” jako bazy danych „{1}”
Usunąłem plik DB i teraz otrzymuję ten paskudny komunikat o błędzie podczas uruchamiania aplikacji, oczekując, że użyje swojego inicjatora. Jakiś sposób to naprawić?
sql-server
asp.net-mvc
visual-studio-2012
entity-framework-5
localdb
Shimmy Weitzhandler
źródło
źródło
Odpowiedzi:
Jeśli usuniesz plik DB, nadal pozostaje on zarejestrowany w SqlLocalDB. Czasami naprawia to usunięcie bazy danych. Możesz to zrobić z wiersza poleceń.
Uruchom następujące polecenia:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
źródło
v11.0
jest on specyficzny dla SQL LocalDB 2012. Jeśli używasz LocalDB 2014, MS zmieniło jego nazwę naMSSqlLocalDb
.Dla tych, którzy wciąż szukają rozwiązania ...
Przejdź do View / SQL Server Object Explorer i usuń bazę danych z podwęzła (localdb) \ v11.0!
Zasadniczo zachowana jest lokalna baza danych, w której powinny znajdować się pliki, a jeśli chcesz usunąć pliki bazy danych, upewnij się, że usuwasz je z tego narzędzia eksploratora, a nie ręcznie.
źródło
Najpierw wypróbowałem rozwiązanie JSobell, ale nie widziałem tam mojej bazy danych. Uruchomiłem polecenia CodingWithSpike z VS Developer Command Prompt, ale to też nie zadziałało. Wreszcie uruchomiłem te same polecenia CodingWithSpike z konsoli Menedżera pakietów i to zadziałało.
źródło
W porządku.
Moje rozwiązanie było proste, zmieniłem na serwer lokalny:
Zmieniłem
DataSource
atrybut w ciągu połączenia z:Do:
Innym rozwiązaniem jest zalogowanie się do LocalDb przez SQL Management Studio i próba usunięcia tej bazy danych:
Jednak to nie zadziałało, kiedy próbuję go usunąć, wyświetla się „TITLE: Microsoft SQL Server Management Studio
Kiedy próbuję go odłączyć, baza danych nie pojawia się na liście do odłączenia, „Przełącz w tryb offline” również przenosi mnie do powyższego błędu.
Co prowadzi mnie do wniosku, że jest to poważny błąd w LocalDB.
źródło
Najłatwiejszym rozwiązaniem jest po prostu zmiana nazwy bazy danych w ciągu połączenia. Zobacz blog Rowan Millers How to Drop a Database from Visual Studio 2012, aby uzyskać alternatywne rozwiązania. Mamy nadzieję, że rozwiążemy ten problem w przyszłej edycji.
źródło
Najlepsza i łatwa odpowiedź Właśnie rozwiązałem to teraz, po prostu użyj nazwy serwera SQL jako źródła danych, początkowy katalog to nazwa bazy danych i gotowe, usuń wiersz mdf
źródło
W moim przypadku używam migracji iw konfiguracji po prostu zmieniłem nazwę klasy dataContext i dataContext (po prostu zmień nazwę), a następnie spróbuj ponownie i to pomogło
źródło
W przypadku SQL 2014 proszę postępować zgodnie z wybraną odpowiedzią CodingWithSpike i tym komentarzem
źródło
v11.0
doProjectsV12
. Przynajmniej na moim komputerze :-).Miałem ten sam problem i rozwiązałem go, ręcznie ustawiając folder „DataDirectory” na inny folder w plikach binarnych mojej aplikacji.
Umieściłem tę linię w metodzie Global.asax Application_Start:
Moje parametry połączenia są obecnie ustawione na:
źródło
DataDirectory
jest jużApp_Data
domyślnie ustawiony na lokalny , więc Twój kod nie robi nic, chyba że wcześniej zostanie to wyraźnie zmienione.Mogłem to naprawić, zmieniając nazwę DataBase w moim ciągu połączenia, z domyślnej nazwy aspnet- {Numery} na prostą nazwę, zadziałało.
źródło
Połącz się z (LocalDb) \ v11.0 za pomocą Sql Server Management Studio, usuń bazę danych, a następnie wykonaj aktualizację bazy danych w konsoli menedżera pakietów.
źródło
Miałem ten sam problem. Uruchomiłem następujące polecenia w konsoli menedżera pakietów i naprawiłem problem
źródło