【发布时间】:2012-04-17 13:47:52
【问题描述】:
嘿,我有一个包含一堆 inproc 缓存和实体框架的应用程序。当我想向实体写入更新时,我会重新附加缓存的副本。我会跟踪我在上下文生命周期中附加的所有内容,因此我不会尝试将它们附加两次。
我在附加时发生错误(在大多数情况下很少会正常工作并且非常快),其中显示以下内容:
发生了参照完整性约束违规:属性 定义引用约束的值不一致 关系中的主体对象和依赖对象之间的关系。
我已经非常仔细地查看了看起来正常的实体。我认为这个问题是由于修复运行时外键的附加/分离造成的。
是否有一种好方法可以获取有关此错误的更多信息,或者它是否会由于实体处于 EF 未预料到的状态之外的其他原因而发生?
编辑: DB 图表(注意我使用的是 codefirst,我只是使用 EDMX 工具制作图表,为简单起见,我还从模型中删除了一堆常规属性)
【问题讨论】:
-
您是先使用代码还是先使用模型 - 以及有关您拥有的模型、与错误相关的表/类以及多对多映射方式的更多信息。如果您首先使用代码,我更喜欢“手动”执行关系,这样我可以控制所有方面并避免类似的事情。另一方面,参照完整性错误可能意味着——我不认为这是对象的状态,尽管我猜它可能以类似的方式表现出来。
-
我用的是CodeFirst,我的模型很简单,一会发图
-
Luke,你能给出 CF 部分吗,你是如何映射的——你的模型类是什么样的,你的迁移代码?能够帮助任何人。
标签: c# entity-framework