【问题标题】:What is the meaning of this Entity Framework exception?这个实体框架异常是什么意思?
【发布时间】:2011-10-20 18:25:01
【问题描述】:

这个异常是什么意思?我在哪里可以找到此类异常的原因参考资料?

对数据库的更改已成功提交,但出现错误 发生时 更新对象上下文。 ObjectContext 可能处于不一致的状态。 内部异常消息:关系的元数据信息 无法检索“MyModel.FK_T_WORKER_VEHICLE_T_VEHICLE”。如果使用映射属性,请确保 关系的 EdmRelationshipAttribute 已在 部件。使用基于约定的映射时,元数据信息 因为无法确定分离实体之间的关系。 参数名称:relationName

我正在使用代码生成设置为默认的 edmx。 pocos 与 edmx 文件位于不同的项目中。

【问题讨论】:

  • 我认为这意味着您的 edmx 或生成的代码被破坏了。请参阅此问题以获取可能的解决方案:stackoverflow.com/questions/2350514/…
  • @Merlyn Morgan-Graham:你所说的“破产”是什么意思?我查看了链接,但没有任何帮助..您知道我可以做些什么来解决这个问题吗?
  • “busted”表示“损坏”或“无功能”。
  • @Michael Petrotta:我在哪里可以找到问题?..如何测试它?
  • 您如何在不同的项目中完成 POCO,并且 代码生成设置为默认值?这些听起来对我来说是相互排斥的,听起来像是保持 edmx、实体和数据库同步的可能错误来源。当我说它被破坏时,我的意思是您的对象、edmx 和/或 DB 彼此不同步。通过阅读错误消息搜索其中一个或全部 - 查找定义该外键关系的对象。

标签: c# .net entity-framework exception


【解决方案1】:

在我的情况下,当我向我的 EDMX 图中添加一个新实体 (A) 时出现同样的错误,其中 A 具有对现有实体 B 的外键引用。然后当我尝试为 B 执行 CRUD 时出现此错误。 我做了一些研究并遵循了MetadataException when using Entity Framework Entity Connection 上的提示,该提示建议重命名连接字符串中的元数据,但它对我不起作用。

解决步骤: 问题出在实体 A 而不是 B。您需要检查新添加的实体 A 是否正确映射到域中的 A 类。检查属性名称和属性类型是否相同(即,可能需要将图表中的列转换为 Enum 类型以与您的实体相同)。请记住,属性名称区分大小写,因此如果它们在您的实体中为大写,则在您的图表中应为大写。

【讨论】:

  • 是的,3 年后才有意义 :) 只是认为它对搜索此问题并访问此页面的人有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
相关资源
最近更新 更多