AttachDbFilename如何工作?

时间:2015-02-05 14:54:52

标签: c# asp.net asp.net-mvc-5 connection-string

这可能是一个愚蠢的问题。但我不得不问。我使用EF代码优先制作ASP.NET MVC 5应用程序。我无法理解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" />

我有一个名为&#34; ShoesContext&#34;的上下文。当我检查localdb时,我看到了两个&#34; aspnet-WebApplication3-20150205041122&#34;和&#34; ShoesContext&#34;。

我想为远程服务器实现相同的目标。我该如何更改连接字符串?我应该复制并附加&#34; aspnet-WebApplication3-20150205041122&#34;到我的远程数据库实例?或者我应该做些什么?感谢。

1 个答案:

答案 0 :(得分: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