ObjectStateManager и состояние отдельного объекта

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

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

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

1 ответ

Решение

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

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

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

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

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