EF5: nie można dołączyć pliku '{0} 'jako bazy danych' {1}'
Spotykam się z dokładnie opisanym problemem Tutaj (Czytaj sekcję "nie można dołączyć do usuniętego pliku MDF"), ale rozwiązanie problemu nie jest tam powiedziane...
W skrócie problem polega na tym, że po usunięciu pliku .mdf
, następujący wyjątek jest wyrzucany, gdy próbuję uzyskać dostęp do DB 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 dostaję ten paskudny komunikat o błędzie podczas uruchamiania aplikacji, oczekując, że użyje inicjalizatora. Jak to naprawić?
12 answers
Jeśli usuniesz plik DB, nadal pozostanie zarejestrowany w SqlLocalDB. Czasami naprawia to, aby usunąć DB. Możesz to zrobić z wiersza poleceń.
- Otwórz "Developer Command Propmpt for VisualStudio" w menu start/Programy.
-
Uruchom następujące polecenia:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-03 09:09:58
Dla tych, którzy wciąż szukają rozwiązania...
Przejdź do View / SQL Server Object Explorer i usuń bazę danych z podnodu (localdb)\v11.0!
Istnieje zasadniczo lokalna baza danych zachowana w miejscu, w którym powinny być pliki, a jeśli chcesz usunąć Pliki bazy danych, upewnij się, że usuwasz je z tego narzędzia Eksploratora, a nie ręcznie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 17:29:21
Najpierw wypróbowałem rozwiązanie JSobell, ale nie widziałem tam mojej bazy danych. Uruchomiłem polecenia CodingWithSpike z wiersza poleceń dewelopera VS, ale to też nie działało. W końcu uruchomiłem CodingWithSpike te same polecenia z konsoli Menedżera pakietów i to zadziałało.
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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-25 20:42:15
W porządku.
Moje rozwiązanie było proste, zmieniłem na serwer lokalny:
Zmieniłem atrybut DataSource
w łańcuchu połączeń z:
Data Source=(LocalDb)\v11.0;blah
Do:
Data Source=.\SQLEXPRESS;blah
Innym rozwiązaniem jest zalogowanie się do LocalDb poprzez SQL Management Studio i próba usunięcia tej bazy danych:
Jednak nie zadziałało dla mnie, kiedy próbuję go usunąć, jest napisane " tytuł: Microsoft SQL Server Management Studio
Baza danych '{0} ' nie istnieje na serwerze. (SqlManagerUI)
Gdy próbuję go odłączyć, baza danych nie pojawia się na liście wyboru odłączyć, "Take offline" również przenosi mnie do błędu powyżej.
Co skłania mnie do myślenia, że jest to solidny błąd w LocalDB.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-14 22:58:51
Najprostszą poprawką jest po prostu zmiana nazwy DB w łańcuchu połączeń. Zobacz blog Rowan Millers Jak zrzucić bazę danych z Visual Studio 2012 dla alternatywnych rozwiązań. Mamy nadzieję rozwiązać ten problem w przyszłej edycji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-30 17:53:56
Najlepsza i łatwa odpowiedź właśnie ją rozwiązałem, Po prostu użyj nazwy ur SQL server jako źródła danych, początkowy katalog będzie nazwą bazy danych i tam go usunąć linię mdf
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-17 12:53:06
W moim przypadku używam migracji i w config po prostu zmieniłem nazwę samej klasy dataContext i dataContext( wystarczy zmienić nazwę), potem spróbować ponownie i to pomogło
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 05:46:22
Dla SQL 2014 proszę śledzić CodingWithSpike wybraną odpowiedź i ten komentarz
Na marginesie, Wersja 11.0 jest specyficzna dla SQL LocalDB 2012. Jeśli jesteś za pomocą LocalDB 2014 MS zmienił nazwę na MSSqlLocalDb. – CodingWithSpike Aug 29 ' 14 at 19: 20
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-22 14:57:28
Miałem ten sam problem i rozwiązałem go ręcznie ustawiając folder "DataDirectory" na inny folder w moich binariach aplikacji.
Umieściłem tę linię w globalnym.metoda ASAX Application_Start:
AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data"));
Mój łańcuch połączeń jest obecnie ustawiony na to:
<connectionStrings>
<add name="DataContext" connectionString="Data Source=(LocalDb)\v11.0; Initial Catalog=DataContext; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|DataContext.mdf"
providerName="System.Data.SqlClient" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-22 16:25:47
Mogłem to naprawić zmieniając nazwę bazy danych w moim łańcuchu połączeń, z domyślnego aspnet - {numbers} na prostą nazwę, zadziałało.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-27 19:19:40
Połącz się z (LocalDb) \ v11. 0 używając SQL server management studio, Usuń db i wykonaj aktualizację bazy danych w konsoli Menedżera pakietów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-28 19:03:54
Miałem ten sam problem. Uruchomiłem następujące polecenia w konsoli Menedżera pakietów i naprawiłem problem
sqllocaldb.exe stop MSSqlLocalDb
sqllocaldb.exe delete MSSqlLocalDb
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 18:10:46