Bic*_*ave 6 entity-framework entitydatasource visual-studio-2013
我正在使用VS 2013和SQL Svr 2012并尝试使用EF来填充gridview.由于这是一个非常简单的测试,我只有一个带有密钥和几个数据字段的表.创建模型的过程似乎工作正常 - 它在设计器视图中按预期显示,文件在app_code中创建,bin文件夹用2个dll创建,配置文件用连接字符串和其他条目更新.
当我尝试选择"命名连接"时,我收到错误"无法加载指定的元数据资源",并且它讨论了重建项目以获取程序集.
我花了几个小时阅读这样的其他案例,我无法理解:
为什么会出现这种情况,因为VS 2010从来都不是问题
如何修复连接字符串以指向它想要的资源.我完全失去了关于完全合格的装配名称的所有技术建议 - 我尝试的任何工作都没有.
如何设置一些参数以强制资源在适当的位置?我读过的所有建议似乎都与VS 2013没有太大关系
我需要决定是否应该卸载VS 2013并使用VS 2012.目前,我正在使用VS 2010和ASP 4.0,我想转向ASP 4.5并且通常跟上Microsoft技术.但是,我没有技能水平来处理有缺陷的VS版本.在我看来,这个EF执行可能是由于我的计算机上的一个错误或一些奇怪的腐败 - 我试图弄清楚是哪种情况.我在一台干净的机器上安装了VS 2013 Express和SQL Svr 2012,过去没有这些工具.
我真的很想看到一个非常熟悉Visual Studio的人尝试复制我的问题,因为它只需要几分钟就可以完成:
在MS SQL Server中,使用一个具有主键和几个数据字段的表创建一个小型DB,并填充一些测试数据 - 使用TestTable1将其命名为TinyDB.
使用VS 2013 Express for Web,使用VB创建一个"新网站",其中包含"ASP Empty Web Site"选项.
添加包含"ADO.Net实体数据模型"的ASP App_Code文件夹,并将名称保留为"模型".
从数据库生成模型并为"TinyDB"创建"新连接"并使用Entity Framework 6.0然后选择"TestTable1".注意命名空间是"TinyDBModel".单击"完成"将在App_Code,其他文件夹中生成多个项目,并更新web.config.
添加名为default.aspx的Web表单并将gridview拖到其上.在网格视图的设计模式中,选择"新数据源",然后选择"实体"选项(注意出现在default.aspx中的EntityDataSource1的名称).单击下一步,在"命名连接"下选择"TinyDBEntities" - 这是我的错误"无法加载指定的元数据资源".
请注意,VS 2010中的这个精确练习可以很好地工作,并生成一个显示正确数据的网格.
不幸的是,EntityDataSource控件不适用于最新版本的Entity Framework,EF6.希望控件在VS或EF的未来更新版本中获得更新,但是现在您不能将这两者一起使用.
有一些解决方案/替代方案:
回退到EF 5.要执行此操作,请从App_Code文件夹中删除.edmx和.tt文件,从Bin文件夹中删除EF程序集,并从web.config中删除对EF的引用.然后重建站点,添加新的ADO.NET实体模型,并在"选择您的版本"对话框中选择版本5.然后从App_Code文件夹中删除.tt文件,打开EDMX diagam,右键单击空白点并在Properties Grid上将Code Generation Strategy设置为Legacy ObjectContext.然后再次重建,它应该工作.
使用模型绑定.这是推荐的解决方案.Microsoft/EF团队建议人们远离EntityDataSource控件并仅将其用于动态数据网站,模型绑定是首选解决方案.它非常干净且直接使用,并且可以让您对查询和对象更新进行大量控制.有关模型绑定的更多信息,请查看:http://www.asp.net/web-forms/tutorials/data-access/model-binding/retrieving-data
归档时间: |
|
查看次数: |
38084 次 |
最近记录: |