我是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文件?我应该已经在某个地方创建了它吗?
答案 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数据工具,但不确定它是否相关。