实体框架 - 从上下文创建上下文

时间:2012-01-20 23:25:12

标签: c# entity-framework

我有一份表格来填写文件A.文件A有相关的文件B和C. 单个上下文应该用于单个工作单元 - 例如填写文档A.但是!我想在填写A时填写B和C,并选择取消所有内容。是否可能,如果是 - 如何 - 从另一个上下文而不是数据库创建上下文。

我为文档A创建了一个上下文,当用户开始创建文档B时,我想要一个'子上下文'保存其父母的变化'上下文。

我能这样做吗?怎么样?我做错了吗?

1 个答案:

答案 0 :(得分:1)

没有。您无法为上下文创建上下文 - 至少没有这样的内置功能,因此您必须完全创建新的“子上下文”类型及其逻辑。

如果您想作为工作单元工作,请使用单个上下文。您可以使用两种方法:

  1. 创建文档A,B和C,并在它们之间使用正确的引用,并且仅在将文档A添加到上下文和SaveChanges之后。如果用户取消文档创建,则不会将文档A添加到上下文中,也不会调用SaveChanges
  2. 创建文档A并将其添加到上下文,创建文档B并将其添加到上下文,创建文档C并将其添加到上下文中。之后,通过设置导航属性和SaveChanges在上下文之间进行引用。如果用户决定取消创建,您将在不调用SaveChanges的情况下处置当前上下文。