EF Удерживайте объект вне контекста и возвращайтесь при необходимости - PullRequest
0 голосов
/ 01 марта 2012

У меня есть форма квитанции о продаже, которая использует EF4.3 ObjectContext. Я изо всех сил пытаюсь выяснить, чтобы удержать квитанцию ​​(сущность в EF ObjectContext) и выйти из контекста и получить обратно, когда пользователь хочет вернуть его. Ситуация такова, что когда форма квитанции о продаже закрыта, контекст исчезает. И проблема в том, что пользователь должен иметь возможность получить его обратно и добавить в текущий контекст.

Код для отсоединения

Serialize(receipt, savepath)
While Receipt.RECEIPTLINEs.Count > 0
      Context.Detach(Receipt.RECEIPTLINEs.First)
End While
Context.Detach(Receipt)
AddNewReceipt()

Код для прикрепления

Dim receipt = DeSerialize(savepath)
Context.Attach(receipt)

1 Ответ

0 голосов
/ 01 марта 2012

Пользователь всегда может получить его обратно - вы выполните запрос в новом контексте.Вам просто нужно знать идентификационный номер (ключ) чека.

Если вам нужно поделиться экземпляром квитанции, вы должны просто создать некоторый инфраструктурный код, в котором вы будете хранить ссылку на квитанцию, и первая форма установит ее, а более поздний код будет использовать ее - это ничего не может сделать для EFвы.Вам просто нужно отделить квитанцию ​​от контекста до закрытия первой формы.

objectContext.Detach(receipt);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...