我在MVC3项目A和B中有两个实体数据模型。
我最近添加了新的实体数据模型B来处理一些新的功能,问题是现在现有的代码已经停止工作,当我试图访问实体模型A中的代码时,我得到了以下错误。
错误消息为:
找不到概念模型类型'project.models.Bclass‘
我不明白为什么这个新功能会影响当前的代码,因为实体模型A没有以任何方式改变。功能B位于单独的类中,不会干扰模型A。
当新代码从项目中删除并且实体模型B被排除时,代码就会正常工作。
以下是错误中的一些堆栈跟踪:
Exception : Could not find the conceptual model type for 'Project1.Models.CrossSession'.
Application Class - method : System.Data.Metadata.Edm.MetadataWorkspace -- GetEdmSpaceType
User : temp.user
Url : http://localhost/project1/auth/message
Stacktrace : at System.Data.Metadata.Edm.MetadataWorkspace.GetEdmSpaceType(StructuralType objectSpaceType)
at System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappings()
at System.Data.Entity.Internal.InternalContext.TryUpdateEntitySetMappingsForType(Type entityType)
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
发布于 2012-01-24 22:59:25
找到解决方案。在某些情况下(随机地),由entity framework
生成的代码中出现了混淆。这显然是一个已知的错误,在未来的版本中应该会有一个修复。同时,解决方法是将efm
移到解决方案中的单独类中。
发布于 2013-01-21 21:22:23
一种可能的解释是,如果您先使用数据库方法,而忘记添加实体类,则会出现此错误。
即(来自下面链接的指南)
< Code >G29
我通常使用朱莉·勒曼的指南;https://msdn.microsoft.com/en-us/library/jj206878(v=vs.113).aspx
发布于 2012-12-06 17:32:38
通过将EntityFramework更新到最新版本(6.0) http://nuget.org/packages/EntityFramework/解决了此问题。
安装后,重新生成模型,它将正常工作;)
https://stackoverflow.com/questions/8974973
复制相似问题