Saya mengalami masalah persis seperti yang dijelaskan di sini (baca bagian "Tidak Dapat Melampirkan File MDF yang Dihapus"), tetapi solusi untuk masalahnya tidak diceritakan di sana ...
Singkatnya masalahnya adalah bahwa setelah menghapus .mdf
file, pengecualian berikut dilontarkan ketika saya mencoba mengakses DB menggunakan EF 5.0.
DataException-> EntityException-> SqlException:
Tidak dapat melampirkan file '{0}' sebagai database '{1}'
Saya memang menghapus file DB dan sekarang saya mendapatkan pesan kesalahan buruk ketika menjalankan aplikasi mengharapkannya untuk menggunakan penginisialisasi itu. Adakah cara untuk memperbaikinya?
sql-server
asp.net-mvc
visual-studio-2012
entity-framework-5
localdb
Shimmy Weitzhandler
sumber
sumber
Jawaban:
Jika Anda menghapus file DB, itu masih tetap terdaftar dengan SqlLocalDB. Terkadang memperbaiki untuk menghapus DB. Anda dapat melakukan ini dari baris perintah.
Jalankan perintah berikut:
sqllocaldb.exe stop v11.0
sqllocaldb.exe delete v11.0
sumber
v11.0
ini khusus untuk SQL LocalDB 2012. Jika Anda menggunakan LocalDB 2014, MS menamainya sebagaiMSSqlLocalDb
gantinya.Bagi mereka yang masih mencari solusi ...
Pergi ke View / SQL Server Object Explorer dan hapus database dari (localdb) \ v11.0 subnode!
Pada dasarnya ada database lokal yang disimpan di mana file seharusnya berada, dan jika Anda ingin menghapus file database pastikan Anda menghapusnya dari utilitas explorer ini, bukan secara manual.
sumber
Saya memang mencoba solusi JSobell pertama tetapi tidak melihat database saya terdaftar di sana. Saya menjalankan perintah CodingWithSpike dari VS Developer Command Prompt, tapi itu tidak berhasil. Akhirnya saya menjalankan perintah CodingWithSpike yang sama dari Package Manager Console dan itu berhasil.
sumber
Baik.
Solusi saya sederhana, saya berubah menggunakan server lokal:
Saya mengubah
DataSource
atribut dalam string koneksi dari:Untuk:
Solusi lain adalah masuk ke LocalDb melalui SQL Management Studio, dan mencoba untuk menghapus database itu:
Namun itu tidak berhasil untuk saya, ketika saya mencoba untuk menghapusnya tertulis "TITLE: Microsoft SQL Server Management Studio
Ketika saya mencoba untuk melepaskannya, database tidak muncul dalam daftar untuk pilihan detach, "Take offline" juga membawa saya ke kesalahan di atas.
Yang membuat saya berpikir ini adalah bug yang solid di LocalDB.
sumber
Perbaikan termudah adalah dengan hanya mengubah nama DB Anda di string koneksi. Lihat Rowan Millers blog Cara Menjatuhkan Database dari Visual Studio 2012 untuk solusi alternatif. Kami berharap dapat memperbaiki masalah ini di edisi mendatang.
sumber
Jawaban terbaik dan mudah saya baru saja menyelesaikannya sekarang, Cukup gunakan nama server sql Anda sebagai sumber data, katalog awal menjadi nama database Anda dan di sana Anda pergi menghapus baris mdf
sumber
Dalam kasus saya, saya menggunakan migrasi dan dalam konfigurasi saya cukup mengubah nama dataContext dan kelas dataContext itu sendiri (hanya ganti nama), lalu coba lagi dan itu membantu
sumber
Untuk SQL 2014 silakan ikuti jawaban yang dipilih CodingWithSpike dan komentar ini
sumber
v11.0
keProjectsV12
. Setidaknya di mesin saya :-).Saya memiliki masalah yang sama dan saya menyelesaikannya dengan secara manual mengatur folder "DataDirectory" ke folder lain di binari aplikasi saya.
Saya meletakkan baris ini dalam metode Global.asax Application_Start:
String koneksi saya saat ini diatur untuk ini:
sumber
DataDirectory
sudah diatur ke lokalApp_Data
secara default, jadi kecuali jika secara eksplisit diubah sebelumnya, kode Anda tidak melakukan apa-apa.Saya bisa memperbaikinya dengan mengubah nama nama DataBase di String koneksi saya, dari aspnet- {number} default menjadi nama sederhana, itu berhasil.
sumber
Terhubung ke (LocalDb) \ v11.0 menggunakan studio manajemen server Sql, hapus db dan kemudian lakukan pembaruan-database di konsol manajer paket.
sumber
Saya memiliki masalah yang sama. Saya menjalankan perintah berikut di konsol manajer paket dan itu memperbaiki masalah
sumber