Как создать копию ObjectSet с неуправляемыми объектами? - PullRequest
0 голосов
/ 21 января 2011

Я хочу получить все данные ObjectSet (что-то вроде getAllProducts ()), но эти данные следует только читать, поэтому, если кто-то использует объект, взятый из этой коллекции, он изменяет только объекты в коллекции, а не ObjectContextуправляемые объекты или данные на персистентном движке.

Я читал, что отсоединение останавливает контекст для сохранения информации отслеживания.Кроме того, я прочитал, что отсоединение может потреблять много системных ресурсов.

Что я могу сделать?Я хочу копию коллекции.

1 Ответ

2 голосов
/ 21 января 2011

Вы правы - ObjectContext.Detach удаляет объект из ObjectStateManager. Это на самом деле уменьшает объем используемой памяти.

При отсоединении объектов применяются следующие соображения:

  • Отсоединение влияет только на конкретный объект, переданный методу. Если отсоединяемый объект имеет связанные объекты в контексте объекта, эти объекты не отсоединяются.
  • В независимой ассоциации информация об отношениях не поддерживается для отдельного объекта.
  • Информация о состоянии объекта не сохраняется, когда объект отсоединен. Это включает отслеженные изменения и временные значения ключей.
  • Отсоединение объектов не влияет на данные в источнике данных.
  • Каскадные директивы удаления и ссылочные ограничения в идентифицирующих отношениях не применяются во время операции отсоединения.

См. здесь для получения дополнительной информации.

Brian

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