Общие сведения о службах объектов (платформа Entity Framework)

Службы объектов – это компонент платформы Entity Framework, позволяющий выполнять запросы, вставлять, обновлять и удалять данные, представленные как строго типизированные объекты CLR, которые являются экземплярами типов сущности.Службы объектов поддерживают как запросы LINQ, так и запросы Entity SQL к типам, определенным в концептуальной модели.Службы объектов материализуют возвращаемые данные в виде объектов и распространяют изменения объектов обратно в источник данных.Кроме того, они предоставляют средства для отслеживания изменений, привязки объектов к элементам управления и обработки параллелизма. Службы объектов реализуются с помощью классов в пространствах имен System.Data.Objects и System.Data.Objects.DataClasses.

Контекст объекта

Класс ObjectContext является первичным классом для взаимодействия с данными в форме объектов, которые являются экземплярами типов сущностей, определенных в концептуальной модели.Экземпляр класса ObjectContext инкапсулирует следующее:

  • Соединение с базой данных в форме объекта EntityConnection.

  • Метаданные, описывающие модель, в форме объекта MetadataWorkspace.

  • Объект ObjectStateManager, отслеживающий операции создания, обновления и удаления.

Средства Entity Framework получают файл на языке CSDL и формируют код уровня объектов.Этот код используется для работы с данными сущностей как с объектами и использования функциональных возможностей служб объектов.Этот сформированный код включает следующие классы данных:

  • Типизированный класс ObjectContext.Класс, который представляет контейнер EntityContainer для модели и является производным от ObjectContext.

  • Классы, представляющие типы сущностей и наследующие от EntityObject.

  • Классы, представляющие сложные типы и наследующие от ComplexObject.

ПримечаниеПримечание.

Класс ObjectContext не является потокобезопасным.Целостность объектов данных в ObjectContext нельзя обеспечить в сценариях с несколькими потоками.

Использование служб объектов

Службы объектов поддерживают следующие варианты поведения для программирования на платформе Entity Framework.

Запросы к данным как к объектам

Службы объектов позволяют использовать языки LINQ, Entity SQL и методы построителя запросов, чтобы выполнять запросы к концептуальной модели и возвращать данные в виде объектов.Дополнительные сведения см. в разделе Запросы объектов (платформа Entity Framework).

Формирование результатов запроса

По умолчанию службы объектов возвращают лишь те объекты, которые прямо указаны в запросе.Когда существуют связи между объектами, можно указывать, следует ли запросу возвращать связанные объекты.Кроме того, связанные объекты можно загружать в ходе последующего запроса.Дополнительные сведения см. в разделе Формирование результатов запроса (платформа Entity Framework).

Составление запросов с помощью методов построителя

В службах объектов реализованы методы для ObjectQuery, которые используются с целью формирования запросов, эквивалентных запросам Entity SQL и LINQ to Entities.Дополнительные сведения см. в разделе Методы построителя запросов (платформа Entity Framework).

Добавление, изменение и удаление объектов

Службы объектов сохраняют объекты данных в памяти и обеспечивают возможность добавления, изменения и удаления объектов внутри контекста объекта.Изменения, внесенные в объекты, отслеживаются контекстом объекта.Дополнительные сведения см. в разделе Создание, добавление, изменение и удаление объектов (платформа Entity Framework).

Сохранение изменений в источнике данных

Службы объектов кэшируют изменения объектов в контексте объекта.При явном запросе службы объектов сохраняют изменения в источнике данных.Дополнительные сведения см. в разделе Сохранение изменений и управление параллелизмом (платформа Entity Framework).

Привязка объектов к элементам управления

Службы объектов обеспечивают привязку объектов к элементам управления, поддерживающим привязку данных, таким как элемент управления DataGridView.Дополнительные сведения см. в разделе Привязка объектов к элементам управления (платформа Entity Framework).

Присоединение объектов

Службы объектов позволяют присоединять существующие объекты непосредственно к контексту объекта.Это дает возможность присоединять объекты, сохраненные в состоянии представления приложения ASP.NET или возвращенные вызовом удаленного метода либо веб-службой.Дополнительные сведения см. в разделе Присоединение и отсоединение объектов (платформа Entity Framework).

Отсоединение объектов

В некоторых случаях экземпляр контекста объекта необходимо сохранять до завершения выполнения приложения – например, когда объекты привязаны к элементам управления Windows Forms.Службы объектов дают возможность управлять размерами контекста объекта; по миновании надобности объекты отсоединяются, что обеспечивает высвобождение ресурсов.Дополнительные сведения см. в разделе Присоединение и отсоединение объектов (платформа Entity Framework).

Сериализация объектов

Службы объектов поддерживают для объектов сериализацию контрактов данных WCF, двоичную сериализацию и сериализацию XML.Сериализация контрактов данных полезна в сценариях с веб-службами.Двоичная сериализация особенно полезна при использовании состояния представления для сохранения объектов в приложении ASP.NET.Дополнительные сведения см. в разделе Сериализация объектов (платформа Entity Framework).

Управление идентификаторами объектов и отслеживание изменений

Службы объектов используют значения идентификаторов для отслеживания изменений объектов, обработки конфликтов и принятия решений относительно того, когда нужно получать данные из источника данных.Дополнительные сведения см. в разделе Разрешение идентификаторов, управление состоянием и отслеживание изменений (платформа Entity Framework).

Управление параллелизмом

Службы объектов могут отслеживать параллелизм, если атрибуту ConcurrencyMode для одного или большего числа свойств задается значение «fixed». В этом случае при обнаружении нарушений параллелизма службы объектов вызывают те или иные исключения.Дополнительные сведения см. в разделе Сохранение изменений и управление параллелизмом (платформа Entity Framework).

Управление соединениями

Службы объектов дают возможность явно управлять соединениями, используемыми контекстом объектов, и обеспечивают пользователя собственными соединениями для контекста объекта.Дополнительные сведения см. в разделе Управление соединениями и транзакциями (платформа Entity Framework).

Управление транзакциями

Службы объектов поддерживают транзакции платформы .NET Framework для координации операций с источником данных и прикрепления их к распределенным транзакциям.Дополнительные сведения см. в разделе Управление соединениями и транзакциями (платформа Entity Framework).

Использование пользовательских объектов с концептуальной моделью

Службы объектов позволяют пользователям вручную определять свои объекты или использовать существующие объекты с концептуальной моделью.Дополнительные сведения см. в разделе Настройка объектов (платформа Entity Framework).

См. также

Основные понятия

Общие сведения о платформе Entity Framework

Другие ресурсы

Работа с объектами (платформа Entity Framework)