2012-01-20 2 views
1

У меня есть форма для заполнения документа A. Документ A имеет связанные документы B и C. Один единый контекст предполагается использовать для одной единицы работы - например, для заполнения документа А. НО! Я хотел бы заполнить B и C, заполнив A, чтобы отменить все. Возможно ли, и если это - как - создать контекст из другого контекста, а не из базы данных.Entity framework - создать контекст из контекста

Я создаю контекст для документа A, и когда пользователь начинает создавать документ B, я хочу, чтобы «подконтекст» сохранял его изменения в своем «родительском» контексте.

Могу ли я это сделать? Как? Я делаю что-то неправильно?

ответ

1

Нет. Вы не можете создать контекст для контекста - по крайней мере, нет такой встроенной функции, поэтому вам придется полностью создать свой новый «подконтекст» и всю свою логику.

Просто если вы хотите работать как единицу работы, используйте единый контекст. Вы можете использовать два подхода:

  1. Создать документ A, B и C с правильными ссылками между ними и только после этого добавить документа к контексту и SaveChanges. Если пользователь отменяет создание документа, вы просто не добавите документ A в контекст и никогда не вызываете SaveChanges.
  2. Создайте документ A и добавьте его в контекст, создайте документ B и добавьте его в контекст, создайте документ C и добавьте его в контекст. После этого сделайте ссылки между контекстом, установив свойства навигации и SaveChanges. Если пользователь решит отменить создание, вы будете использовать текущий контекст, не звонив по телефону SaveChanges.
Смежные вопросы