【问题标题】:Multiple Entity framework context in asp.netasp.net 中的多实体框架上下文
【发布时间】:2012-12-08 12:45:06
【问题描述】:

我有一个类似于 4 个步骤的向导的网站。该站点由asp.net web 表单实现。 该向导尝试构建和对象并将其添加到数据库。 对象图如下:

class A { B bObject ; C cObject ; D dObject}
class B {} ; class C{}; class D{};

对象 b、c、d 在向导步骤中从数据库中获取并填充到 A。 如您所知,b,c,d 通过不同的上下文从数据库中获取。 当我进入将 A 保存到 DB 的最后一步时,上下文将 b,c,d 识别为新对象,而不仅仅是未修改的,因此仅将它们链接起来,因为它们来自不同的上下文。

有什么建议可以用干净的方式解决这个问题吗?

由于帖子包导致的不同上下文。

【问题讨论】:

    标签: asp.net .net entity-framework entity-framework-4


    【解决方案1】:

    这是最佳答案是“不要这样做!”的情况之一!

    处理此问题的一种方法是让向导步骤从用户那里收集创建数据库表所需的所有数据,并将数据保存为会话状态。只有在执行最后一个向导步骤时,您才会从 Session 状态中获取数据并使用它来创建 EF 实体,然后保存更改,所有这些都在一个上下文中。

    另一种方法是将对象图保存为 EF 对象(仍处于会话状态),然后在最后的向导步骤中打开一个上下文并使用 Attach 方法将对象附加到当前上下文。同样,这使用单个上下文。

    【讨论】:

    • 谢谢,我认为第二个选项对我来说似乎更干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多