【发布时间】:2011-08-27 08:44:57
【问题描述】:
当我尝试将实体附加到上下文时出现异常
已经有相同键的对象 存在于 ObjectStateManager 中。这 ObjectStateManager 无法跟踪 具有相同键的多个对象
这是预期的行为。
但我想知道 ObjectStateManager 是如何知道的? 我想自己做这个检查之前
【问题讨论】:
-
我怀疑它会询问具有相同键的实体的当前上下文,您当然可以执行相同的
var exists = (dbContext.entities.Where(e=>e.ID == myEntity.ID).Count() > 0);或类似的操作 -
+1 进行验证,但我宁愿使用 Any insted of Count
-
这怎么可能是预期的行为?所以你每次都要检查一个对象是否已经在上下文中? wtf?
-
@IanWarburton 是的。实体框架确实留下了很多松散的结局。本质上它只对简单的数据访问有用。
标签: c# entity-framework-4 ef-code-first