2015-06-22 22 views
1

我已經使用EntityFramework Code第一種方法創建了簡單的ASP.NET MVC4應用程序。實體類是如下:無法找到自動創建的數據庫

​​3210

而且web.config連接詳情如下

<connectionStrings> 
    <add name="MusicContext" connectionString="Data Source=localhost;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

的應用軟件運行良好,我能夠添加,刪除,編輯相冊記錄,但我不能找到數據庫。當我使用SSMS檢查SQL服務器實例時,沒有創建數據庫。我沒有在web.config中指定「初始目錄」值(DBName),並且在代碼中創建上下文時未指定DBname。我甚至在運行時檢查了數據庫名稱,但它會返回空字符串,如下面的屏幕截圖所示。我甚至檢查了SQL Express,沒有在那裏創建數據庫,甚至沒有在我的其他實例。那麼我在哪裏可以找到自動創建的數據庫。我確信數據庫存儲在某個地方,因爲記錄存儲和檢索沒有任何錯誤。

enter image description here

+0

check in app_data,確保點擊'顯示所有文件' –

+0

@羅曼感謝您的回覆。我已經檢查了APP_Data文件夾,該目錄是空的。 – jaycyborg

回答

3

如果不指定,則連接將使用默認的數據庫對於用戶來說,在這種情況下,它的集成安全,以便它是你的Windows登錄數據庫名稱。由於服務器上可能有完整的系統管理員,因此默認數據庫將爲master,因此您可以在其中找到所有表。

對於多一點澄清,master是系統數據庫,因此,看到它在SSMS您需要導航到Server - >Databases - >System Databases

要解決此問題,您可以:

  1. 指定連接字符串中的數據庫名。
  2. 更改用戶的默認數據庫。

雖然我會建議指定數據庫名稱,除非您需要爲登錄名動態更改數據庫,那麼最好是明確地說明這樣的事情。

+0

這是一個很好的解釋。我將檢查master數據庫,不幸的是我只能在明天才能這樣做。一旦我明天進入,我會回覆。但我很想知道爲什麼在調試代碼時數據庫名稱在監視窗口中顯示爲空字符串? – jaycyborg

+0

數據庫名稱是您在連接字符串中指定的內容,而不是連接所連接的內容。請記住,當前的數據庫可以更改。 – DavidG

+0

噢好的,謝謝澄清:)將檢查主數據庫。 – jaycyborg

0

也許它是在解決方案中創建的本地數據庫。轉到查看並選擇服務器資源管理器,然後查看數據連接下拉菜單。