这可能是一个愚蠢的问题。但我不得不问。我使用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;到我的远程数据库实例?或者我应该做些什么?感谢。
答案 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