1

如何将 .mdf 文件(在 VS2012 中称为 SQL Server 数据库)用于实体框架?

我收到此错误消息:

Invalid value for key 'attachdbfilename'.

这是我的连接字符串:

<add name="DbContainer" connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl|res://*/Database.Db.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDb)\v11.0;initial catalog=DataContext;Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />.

在 Global.asax.cs 中,Application_Start 我设置了正确的路径,|DataDirectory|如下所示:

string newPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_Data");

AppDomain.CurrentDomain.SetData("DataDirectory", newPath);

你们中有人知道如何进行这项工作吗?

顺便提一句。它在本地运行我的 Web 应用程序(即调试)时有效,但在发布到我的在线域时无效。

4

1 回答 1

0

如果它在本地工作但不能在线工作,则问题出data source在您的连接字符串的一部分。如果您想在运行时而不是通过管理工作室附加您的数据库,请删除该initial catalig部分。因此,将其更改为以下内容:

<add name="DbContainer" 
  connectionString="metadata=res://*/Database.Db.csdl|res://*/Database.Db.ssdl
  |res://*/Database.Db.msl;provider=System.Data.SqlClient;
  provider connection string=&quot;data source=RemoteServerInstance;      
  Integrated Security=True;AttachDBFilename=|DataDirectory|\DataContext.mdf;
  MultipleActiveResultSets=True;App=EntityFramework&quot;"
  providerName="System.Data.EntityClient" />
于 2013-07-25T05:29:11.143 回答