Dot-Net

無法將文件 *.mdf 作為數據庫附加

  • June 9, 2013

基本上我遵循了一個教程,然後決定刪除該.mdf文件。

現在,每當我嘗試執行應用程序時,都會收到以下錯誤(該執行緒的標題)。我得到錯誤的程式碼如下所示(ASP.NET MVC 4):

OdeToFoodDB db = new OdeToFoodDB();

public ActionResult Index()
{
   var model = db.Restaurants.ToList();
   return View(model);
}

我的連接字元串如下:

<add name="DefaultConnection" 
    connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=OdeToFoodDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OdeToFoodDb.mdf" 
    providerName="System.Data.SqlClient" />

我試過查看 SQL Server 對象資源管理器,但它看起來如下:

此外,在伺服器資源管理器中,我看不到任何數據連接。

當我嘗試在伺服器資源管理器中添加新連接時,我看不到任何名為OdeToFoodDb.

很抱歉這個廣泛的問題,但我是實體框架的新手,不太明白這裡有什麼問題。

看看這個:Entity Framework don’t create database

我會嘗試給數據庫一個不同的名稱。有時,當您再次嘗試創建具有相同名稱的數據庫時,您可能會遇到 SQL Express 問題。有一種方法可以使用 SQL Server Management Studio 解決此問題,但使用不同的數據庫名稱通常更容易。

編輯 此答案被接受,因為它確認了OP 使用的錯誤和解決方法(重命名數據庫可能會有所幫助)。我完全同意重命名數據庫並不是真正可接受的方式,也不能完全解決問題。不幸的是,我沒有檢查在 SSMS 中真正解決它的其他方法。

我認為對於 SQL Server Local Db,您不應該使用該Initial Catalog屬性。我建議使用:

<add name="DefaultConnection" 
    connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OdeToFoodDb.mdf" 
    providerName="System.Data.SqlClient" />

我認為本地 db 不支持同一個 mdf 文件上的多個數據庫,因此不支持指定初始目錄(或者沒有得到很好的支持,我有一些奇怪的錯誤)。

引用自:https://stackoverflow.com/questions/17012839