2014-01-08 85 views
0

只是好奇。爲什麼當一個新的MVC5項目被創建時,有2個連接字符串。爲什麼MVC 5中的DefaultConnection有2個連接字符串?

Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-Application1.Web 
-20140107075640.mdf; 

Initial Catalog=aspnet-Application1.Web-20140107075640;Integrated Security=True" 

有什麼理由呢?另外,那個號碼是20140107075640

+1

我只看到您的問題中的一個連接字符串 –

回答

1

我只看到一個連接字符串,當我創建一個項目:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication7-20140107051904.mdf;Initial Catalog=aspnet-WebApplication7-20140107051904;Integrated Security=True" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings> 

隨機數(或時間戳,我認爲)是確保數據庫具有唯一的名稱。如果你以前創建了一個項目Foo,並且它在SQL Server LocalDB中創建了一個新的數據庫,那麼如果你創建了另一個名爲Foo的項目,那麼你最終會共享數據庫。通常情況下,這是不可取的,因此將隨機標記插入到連接字符串中以保持它們的唯一性。您始終可以根據自己的喜好定製初始目錄值。

+0

我明白了。那麼爲什麼要使用'AttachDbFilename'和'Initial Catalog'? – Richard77

+0

@ Richard77 AttachDbFilename是將數據庫放入項目文件夾(在App_Data下)而不是SQL默認數據目錄。 InitialCatalog是給它一個友好的名字(當然,就像你可以用一個隨機數字一樣友好)。其中之一可以被刪除並保持功能,但爲什麼不保留兩者? – Jimmy

+0

有太大意義。非常感謝。 – Richard77

相關問題