【发布时间】:2013-06-25 22:13:57
【问题描述】:
如何将 .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 应用程序(即调试)时有效,但在发布到我的在线域时无效。
【问题讨论】:
-
您的在线域上的目录路径是什么?它接受“\”吗?您是否尝试过使用指定的完整路径进行测试?
-
类似于:
D:\home\krbak\[projectname]\App_Data。我已尝试使用连接字符串中指定的此路径。如果我通过服务器浏览器浏览到 MDF 的连接,然后右键单击,选择“管理连接”,我会看到 MDF 文件的绝对路径,而不是相对路径。
标签: asp.net asp.net-mvc entity-framework asp.net-mvc-4 localdb