ObjectStateManager и состояние отдельного объекта - PullRequest
0 голосов
/ 14 ноября 2011

Я использую Entity Framework, и некоторые его функции до сих пор неясны для меня.Основные вещи, которые трудно понять:

  • SubmitChanges process;
  • Порядок вызова методов update-delete-insert;
  • Понимание ObjectStateManager
  • Отдельно EntityState и его участие в процессе отправки;

Предоставьте свои объяснения или дайте несколько полезных ссылок.

1 Ответ

3 голосов
/ 14 ноября 2011

ObjectStateManager - это компонент, предоставляющий информацию о отслеживаемых объектах.Каждый объект, который может быть сохранен EF, должен быть отслежен = присоединен.Отдельные сущности неизвестны EF (они не отслеживаются), поэтому их изменения не сохраняются при вызове SaveChanges (в EF нет SubmitChanges).Отслеживание состоит из ведения информации о начальном состоянии объекта или отношения и внесенных в них изменениях.Он также содержит глобальное состояние объекта.

Процесс, когда вы вызываете SaveChanges, зависит от того, как вы настроили EF для отслеживания изменений, от того, как вы получили объект, и от изменений, которые вы сделали.1006 *

Отслеживание изменений - это функция, которая позволяет EF отслеживать изменения, примененные к объектам, присоединенным к контексту (каждый объект, загруженный запросом, по умолчанию присоединен).EF содержит версию отслеживания изменений:

  • Снимок - только для POCO.EF не отслеживает изменения в сущностях, но когда вы вызываете SaveChanges, он сравнивает сохраненное состояние сущности (полученное при загрузке сущности) и текущие данные в сущности и соответственно устанавливает его состояние.
  • Динамический - собственный для сущностей на основе EntityObject и достигается с помощью динамических прокси для POCO.Каждое изменение присоединенной сущности запускает изменение отслеживаемой записи и соответственно устанавливает состояние сущности.Когда вы звоните SaveChanges, состояния уже настроены.

Порядок операций по модификации данных является внутренней реализацией EF.Основной порядок определяется вашим отображением, где описывается зависимость между сущностями.

...