无法检索元数据 - MVC应用程序

时间:2013-07-08 11:51:38

标签: c# asp.net-mvc-4 model controller

我正在关注this来创建一个简单的 MVC 应用程序。创建模型后,当我尝试添加控制器时,出现以下错误:

无法检索“MvcApplication.Models.Movie”的元数据。键“attachdbfilename”的值无效。

enter image description here

有人可以告诉我为什么会收到此错误。

更新:我看到了this,其中通过更改providerName来提供解决方案。但就我而言,它已经是 System.Data.SqlClient 。以下是我的connectionStrings:

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

3 个答案:

答案 0 :(得分:3)

错误消息表示AttachDbFilename的无效值是MovieDbContext连接字符串的一部分。

连接字符串当前显示此AttachDbFilename=|DataDirectory|\Movies.mdf,因此现在App_Data文件夹中缺少mdf文件。

答案 1 :(得分:1)

我找到了解决方案。问题是&#34; | DataDirectory |&#34;。我改变了#34; |&#34;到&#34; \&#34;

答案 2 :(得分:0)

我刚刚解决了这个问题。虽然我是MVC的新手,但我有点不好意思说,我正在尝试解决我遇到的另一个问题并将我的SetInitializer移动到我的classname:DbContext类中。

该应用程序工作正常,数据库创建正常,因为我更改了模型,但我无法使用脚手架工具添加新控制器或修改当前控制器。

我开始收到错误。其中一个列在上面,另一个是:
                          无法检索'namespace.Models.class'的元数据。一份文件                           发生激活错误。物理文件名'\ name.mdf'                           可能不正确。诊断并更正其他错误,然后重试                           操作。                           CREATE DATABASE失败。无法创建列出的某些文件名。                           检查相关错误。

将SetInitializer移回我的Global.asax修复了问题。