2015-02-05 51 views
0

這可能是一個愚蠢的問題。但我不得不問。我正在用EF代碼優先製作ASP.NET MVC 5應用程序。我無法理解AttachDbFilename是如何工作的。這是否創建並將數據庫附加到數據庫實例?或者它只是附加一個現有的數據庫?如果數據庫已附加,我真的需要使用它嗎?例如,以下是我的默認連接字符串:AttachDbFilename如何工作?

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

而且我有一個名爲「ShoesContext」的上下文。當我檢查localdb時,我看到「aspnet-WebApplication3-20150205041122」和「ShoesContext」。

我想爲遠程服務器實現相同。我應該如何更改連接字符串?我應該複製並附加「aspnet-WebApplication3-20150205041122」到我的遠程數據庫實例嗎?還是我應該做點別的?謝謝。

回答

1

要改變你的connectionString到遠程服務器,你將不得不做

<connectionStrings> 
<add name="myConnectionString" connectionString="server=myServer;database=myDb;uid=myUser;password=myPass;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

<connectionStrings> 
<add name="mySecondConnectionString" connectionString="server=myServer;database=myDb;uid=myUser;password=myPass;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

你的C#代碼將看起來像

var firstConnectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
var secondConnectionString = ConfigurationManager.ConnectionStrings["mySecondConnectionString"].ConnectionString; 

更多信息here

+0

謝謝,但與當前連接字符串,我得到兩個數據庫。與你的,我想我得到一個數據庫。我怎樣才能得到第二個數據庫(如aspnet-WebApplication3-20150205041122)? – jason 2015-02-05 15:10:33

+1

只是有另一個不同名稱的連接字符串 – Izzy 2015-02-05 15:12:33

+1

@jason查看我更新的答案 – Izzy 2015-02-05 15:19:16