ASP.NET MVC 4中的新手错误:键'attachdbfilename'的值无效

时间:2013-07-16 21:02:40

标签: asp.net-mvc asp.net-mvc-4 metadata dbcontext

我是ASP.NET MVC 4中的一个完整的新手。我关注这个不错的tutorial about ASP.NET MVC

我一度陷入困境。

我尝试添加名为MoviesController.cs的新控制器,但Visual Studio 2010正在产生错误:

Unable to retrieve metadata for 'MvcMovie.Models.Movie'. Invalid value for key 'attachdbfilename'.

我认为attachdbfilename,它指的是Web.Config文件中的这一行:

<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
 providerName="System.Data.SqlClient" />

我也在StackOverFlow中搜索过这个,一个解决方案是安装Microsoft SQL Server Compact 4.0,我安装了它但没有改变。

可能有关:

我的Windows 7 64位上也安装了WAMPServer,但是在我做任何事情之前,我已经停止了所有服务并关闭了应用程序。

那么我该如何解决这个问题?

谢谢!

修改

现在我开始认为| DataDirectory |应该用路径改变。这是真的吗?如果是这样,哪条路?

这个Movies.mdf文件是什么?是某种.sql文件?我应该已经在某个地方创建了它吗?

2 个答案:

答案 0 :(得分:3)

如果您使用的是SQL Express,则需要修改连接字符串。我修改并使用了下面的连接字符串,它对我有用。

<add name="MovieDBContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Movies;AttachDBFilename=|DataDirectory|\Movies.mdf;Integrated Security=SSPI" providerName="System.Data.SqlClient" />

答案 1 :(得分:0)

我在这个主题中找到了答案:http://forums.asp.net/post/5120530.aspx

当我将线路更改为此时,它有效:

<connectionStrings>

<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />

  </connectionStrings>

我还安装了Sql Server数据工具,但不确定它是否相关。