2

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

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

在此处输入图像描述

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

更新:我看到了这个,其中解决方案是通过更改 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>
4

3 回答 3

3

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

连接字符串当前显示了这一点AttachDbFilename=|DataDirectory|\Movies.mdf,因此看起来文件App_Data夹中缺少 mdf 文件。

于 2013-07-08T12:43:16.813 回答
1

我找到了解决方案。问题是“|DataDirectory|”。我改变了“|” 至 ”\”

于 2014-07-01T05:42:57.887 回答
0

我刚刚解决了这个问题。尽管我是 MVC 的新手,但我有点尴尬地说,我正在尝试解决我遇到的另一个问题,并将我的 SetInitializer 移到我的类名中:DbContext 类。

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

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

将 SetInitializer 移回我的 Global.asax 解决了这个问题。

于 2013-10-11T12:11:04.430 回答