我正在使用 VS 2013 和 SQL Svr 2012 并尝试使用 EF 填充网格视图。由于这是一个非常简单的测试,我只有一个带有键的表和几个数据字段。创建模型的过程似乎工作正常 - 它在设计器视图中按预期显示,文件在 app_code 中创建,使用 2 个 dll 创建 bin 文件夹,配置文件使用连接字符串和其他条目进行更新。
当我尝试选择“命名连接”时,我收到错误“无法加载指定的元数据资源”,它谈到重建项目以获取程序集。
我花了几个小时阅读其他类似的案例,但我无法理解:
为什么在 VS 2010 从来都不是问题时会发生这种情况
如何修复连接字符串以指向它想要的资源。我完全迷失了关于完全限定程序集名称的所有技术建议——我尝试的任何方法都不起作用。
如何设置一些参数以强制资源位于正确的位置?我读过的所有建议似乎都与 VS 2013 不太相关
我需要决定是否应该卸载 VS 2013 并使用 VS 2012。目前,我正在使用带有 ASP 4.0 的 VS 2010,我想迁移到 ASP 4.5 并通常跟上微软的技术。但是,我没有处理有问题的 VS 版本的技能水平。在我看来,这个 EF 执行可能是由于我的计算机上的错误或一些奇怪的损坏 - 我试图弄清楚是哪种情况。我在过去没有这些工具的干净机器上安装了 VS 2013 Express 和 SQL Svr 2012。
我真的很想看到非常熟悉 Visual Studio 的人尝试复制我的问题,因为这样做只需要几分钟:
在 MS SQL Server 中,创建一个包含一个表的小型数据库,该表具有一个主键和几个数据字段,并填充一些测试数据 - 使用 TestTable1 将其称为 TinyDB。
使用 VS 2013 Express for Web,使用 VB 创建一个带有“ASP 空网站”选项的“新网站”。
添加一个包含“ADO.Net 实体数据模型”的 ASP App_Code 文件夹,并将名称保留为“模型”。
从数据库生成模型并为“TinyDB”创建一个“新连接”并使用 Entity Framework 6.0,然后选择“TestTable1”。注意命名空间是“TinyDBModel”。单击“完成”将在 App_Code、其他文件夹中生成几个项目,并更新 web.config。
添加一个名为 default.aspx 的 web 表单并将一个 gridview 拖到它上面。在gridview 的设计模式中,选择“新数据源”,然后选择“Entity”选项(注意出现在default.aspx 中的EntityDataSource1 的名称)。单击下一步并在“命名连接”下选择“TinyDBEntities” - 这是我收到错误“无法加载指定的元数据资源”的地方。
请注意,VS 2010 中的这个精确练习可以完美运行,并生成一个显示正确数据的网格。