我正在努力解决这个问题。
我有一个非常大的MVC项目,使用4个Entity Framework模型。模型被编译为单独的程序集/类库类型项目。
直到几天前,一切都运转良好。我休假了2天,有人调整了模型,他被称为严重病人。
当我今天回来时,我注意到该应用程序无法启动。它会显示死亡的黄色屏幕,并显示以下异常消息:
System.InvalidOperationException: Mapping and metadata information could
not be found for EntityType 'MyNamespace.MyClassName'
我查看了一些文章(http://blogs.infosupport.com/mapping-and-metadata-information-could-not-be-found-for-entitytype-schema-klant/,http://matheusandcode.wordpress.com/2011/11/13/mapping-and-metadata-information-could-not-be-found-for-entitytype/)和问题&从这里得到答案,他们都建议我交叉检查POCO和模型生成实体之间的拼写错误或缺失属性。
我有大约400多个实体。但是,我检查了实体在创建实体集时抛出异常,并且绝对没有拼写错配。我花了5个多小时检查这个,我感到很累和沮丧。
是否有任何其他线索可能导致此错误的原因?
我已经使用Table Mappings窗口,模型浏览器甚至SQL Server Management Studio清理,重建,检查拼写错误,缺少属性,概念和存储模型之间的交叉校验奇偶校验,我已经打印了 - 在纸板上标记了每一个与POCO中的财产有关的财产,我已经冲洗并重复了几次,但错误不会发生。
我使用的是Visual Studio 2010,EF 5,MVC 4和Entity Framework POCO Generator软件包。
答案 0 :(得分:2)
为了疲惫的徒步旅行者的利益。
在我们的案例中,我们发现错误原因如下:
开发人员添加了一个不使用EF POCO生成器的额外EDMX。事实上,新模型也没有表格。它只使用了一个存储过程。
他删除了它,错误消失了。我们可能会使用vanilla ADO.NET调用存储过程,而不是为它添加新的Entity Framework模型。