找不到概念模型类型

Mat*_*our 17 entity-framework entity-model asp.net-mvc-3

我在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()
Run Code Online (Sandbox Code Playgroud)

Mat*_*our 12

找到解决方案 它在某些情况下(随机地)出现在由...生成的代码中混淆entity framework.这显然是一个已知的错误,未来版本中应该会出现修复.与此同时,解决方法是将其移至efm解决方案中的单独类.


Pau*_*0PT 8

通过将EntityFramework更新到最新版本(6.0)http://nuget.org/packages/EntityFramework/解决了这个问题 .

安装后重新生成模型,它将工作;)


Vla*_*and 8

我在同.edmx一个项目中遇到了同样的问题.对于.edmx model我使用的第一个,我没有使用"Add Code Generation Item"的第二个模型.该项目正在构建正确但在运行时抛出该异常.

我解决了.tt为第二个生成类的问题.edmx model.


sha*_*wad 7

一种可能的解释是,如果您使用数据库第一种方法而忘记添加实体类,则会出现此错误.

即(来自下面链接的指南)

  1. 右键单击模型的设计器表面.
  2. 从上下文菜单中,选择"添加代码生成项".
  3. 在打开的"添加新项"对话框中,从左侧的已安装模板类型列表中选择"数据".
  4. 选择ADO.NET DbContext Generator,然后单击"添加"按钮.

我通常使用Julie Lerman的指南; https://msdn.microsoft.com/en-us/library/jj206878(v=vs.113).aspx