Asp.net mvc MVC3:当我想从控制器访问模型数据时,无法检索模型类的元数据

Asp.net mvc MVC3:当我想从控制器访问模型数据时,无法检索模型类的元数据,asp.net-mvc,asp.net-mvc-3,razor,Asp.net Mvc,Asp.net Mvc 3,Razor,我是asp.net MVC3平台的新手,我正在学习asp.net网站上发布的教程: 但是在我需要从控制器访问模型类数据的第五个步骤中,我遇到了一些问题,我创建了模型类和上下文类,但是当我想使用脚手架模板(具有读/写操作的控制器和使用实体框架的视图)创建控制器类时,它会给我一个错误,如下所示: 无法检索“我的模型类的全名”的元数据。 配置系统初始化失败 试试这个 <add name="MovieDBContext" connectionString="data source=.\SQLEX

我是asp.net MVC3平台的新手,我正在学习asp.net网站上发布的教程:

但是在我需要从控制器访问模型类数据的第五个步骤中,我遇到了一些问题,我创建了模型类和上下文类,但是当我想使用脚手架模板(具有读/写操作的控制器和使用实体框架的视图)创建控制器类时,它会给我一个错误,如下所示:

无法检索“我的模型类的全名”的元数据。 配置系统初始化失败

试试这个

<add name="MovieDBContext" connectionString="data source=.\SQLEXPRESS;&#xD;&#xA;         Integrated Security=SSPI;&#xD;&#xA; AttachDBFilename=|DataDirectory|\MVCtest.sdf;&#xD;&#xA;         User Instance=true" providerName="System.Data.SqlClient" />


只需将您的连接字符串提供程序类型更改为
System.Data.SqlClient
我将提供程序名称更改为System.Data.SqlClient,就像另一个答案中建议的那样。这允许我在添加控制器步骤中创建控制器。但是当我运行应用程序时,它根本不会显示电影资源。然后我把它改回了System.Data.SqlServerCe.4.0,就像在教程中一样,一切正常

在阅读了网络上的其他讨论之后,我找到了另一种方法


如果在创建控制器类之前不添加连接字符串,那么它也可以工作。这看起来有点像一个bug。

没有bug。只是,为了反映模型结构并迁移到数据库,并且没有错误,您必须遵循一个时间顺序:

  • 创建控制器(不要在Web.config中包含连接字符串,否则会出现上述错误。)
  • 使用教程中的内容在Web.config中添加连接字符串
  • 最后,运行应用程序

  • 注意:不要手动创建压缩数据库,因为Visual Studio将在您运行压缩数据库并在浏览器中导航到该控制器时,自动为您创建并映射该数据库以及模型结构。只需确保在Web.config中有正确的数据库路径即可。希望这有帮助!注意。

    请确保在正确的web.config文件中添加连接字符串,因为有两个(一个在解决方案级别,另一个在视图级别)。您希望在视图级别添加它。您的crud内容将在修复连接字符串后创建,然后创建控制器。谢谢,Maurice Maglalang

    可能是因为您的连接字符串错误。把它贴在这里。试试这个!!。。。帮助了我…希望它也能帮助你。。。谢谢这是我在web.config中的连接字符串:请在此处检查我的答案:[1]它应该可以解决您的问题[1]:是的,我也可以添加到其中,有时最好从头开始。从web.config中删除任何现有连接字符串,删除实体模型(.edmx),然后重新创建它。有时候我觉得有些事情被扭曲了,把一切都搞砸了。另外,如果使用同名的分部类,请确保在scaffolding.+1时选择正确的实体类,如果安装了SQL Server的完整版本,请将其指向localhost
    data source=localhost中的数据库;综合安全=SSPI;数据库=测试@Andomar我正在使用SQL Server的完整版本。所以我的服务器中没有电影数据库。我遵循同样的教程按照操作。我也得到同样的错误。我的绳子怎么了
    如果我添加了
    providerName=“System.Data.SqlClient”
    ,那么它就可以工作了——尽管对我来说没有意义。但是,我无法看到电影数据库是在VS的服务器资源管理器中创建的。因此,我不确定我的方向是否正确。它不起作用。我也不确定它是否适用于
    .sdf
    。添加控制器后按原样添加连接字符串是一种解决方案。+1。在添加控制器之后添加连接字符串是一个解决方案。对我来说也是如此。我在添加控制器后添加了连接字符串。根据您的提示,我没有看到在VStuio的服务器资源管理器窗口下创建的名为Movies的数据库,尽管您的提示有效。我想看看数据库。另外,我有完整版本的SQL Server。