如何在实体框架中识别DbContext?

Juan Pablo Gomez占位符图像

我在一个项目中有多个对象,并且由于未知原因,EF抛出异常:

“无法定义两个对象之间的关系,因为它们与不同的ObjectContext相关联”

我了解,但我的问题是:

如何识别对象的上下文?有一个ID?或者是其他东西 ?

威克多(Wiktor Zychla)

那是微妙的。很可能您有db上下文的两个不同实例,并且关系中的一个实体是使用上下文的第一个实例检索的,而另一个实体是使用上下文的另一个实例检索的。

这很容易发生。例如,在Web应用程序中,您可能具有带有请求生存期的上下文,但是您将实体存储在会话容器中。然后,在处理另一个请求时,您将从会话中获取实体,并尝试使用它来创建与当前上下文中另一个实体的关系。另一个示例-您具有Windows应用程序,并且已在每种表单上实例化了db上下文。然后,您从两个不同的上下文中获得实体。

最简单的解决方法是让ID在不同的上下文之间传递。而不是将实体放入会话中,而是在其中放置ID。而不是在表单之间传递实体,而是传递ID等等。

这样,当您创建关系时,您从一个上下文中获得一个实体,而从另一个上下文中获得该实体ID您使用id从当前上下文中检索实体,然后创建一个关系。

解决此问题的另一种方法是在上下文之间分离和重新附加实体。通常这是不必要的混乱。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在实体框架DbContext中使用依赖注入?

来自分类Dev

实体框架DbContext在查询中

来自分类Dev

从实体框架中的实体获取DbContext

来自分类Dev

如何在数据库优先实体框架中更新模型时防止DbContext中的代码删除

来自分类Dev

如何在Java中识别选定的框架?

来自分类Dev

如何在实体框架中定义枚举?

来自分类Dev

如何在实体框架中按多个相关实体过滤

来自分类Dev

如何在实体框架中包含关联的实体?

来自分类Dev

如何在实体框架中按多个相关实体过滤

来自分类Dev

实体框架中DbContext的奇怪行为

来自分类Dev

窗口窗体中的实体框架 DbContext 范围

来自分类Dev

识别实体框架,linq到sql,linq到实体,DbContext或ObjectContext

来自分类Dev

如何在现有实体框架中添加新表

来自分类Dev

如何在实体框架中创建多对多映射?

来自分类Dev

如何在实体框架中处理值对象?

来自分类Dev

如何在实体框架中按引用表列排序

来自分类常见问题

如何在实体框架中添加外键关系?

来自分类Dev

如何在实体框架中启用单独审核表

来自分类Dev

如何在实体框架中删除强制转换枚举类型

来自分类Dev

如何在实体框架中处理System.InvalidOperationException?

来自分类Dev

如何在实体框架中更新子列表?

来自分类Dev

如何在N层架构中模拟实体框架

来自分类Dev

如何在Lambda实体框架中动态排序?

来自分类Dev

如何在实体框架中处理空值?

来自分类Dev

如何在实体框架中实现多个包含?

来自分类Dev

如何在实体框架中更新表的所有记录?

来自分类Dev

如何在实体框架中创建多对多映射?

来自分类Dev

如何在实体框架中添加外键关系?

来自分类Dev

如何在实体框架中设置OnDelete级联

Related 相关文章

热门标签

归档