Общие сведения о службах объектов (платформа Entity Framework)
Службы объектов — это компонент платформы Entity Framework, позволяющий выполнять запросы, вставлять, обновлять и удалять данные, представленные как строго типизированные объекты CLR, которые являются экземплярами типов сущности. Службы объектов поддерживают как запросы LINQ, так и запросы Entity SQL к типам, которые определены в модели Entity Data Model (EDM). Службы объектов материализуют возвращаемые данные в виде объектов и переносят изменения объектов обратно в источник данных. Кроме того, они предоставляют средства для отслеживания изменений, привязки объектов к элементам управления и обработки параллелизма. Службы объектов реализуются с помощью классов в пространствах имен System.Data.Objects и System.Data.Objects.DataClasses.
Контекст объекта
Класс ObjectContext является первичным классом для взаимодействия с данными в форме объектов, которые являются экземплярами типов сущностей, определенных в модели EDM. Экземпляр класса ObjectContext инкапсулирует следующее:
Соединение с базой данных в форме объекта EntityConnection.
Метаданные, описывающие модель, в форме объекта MetadataWorkspace.
Диспетчер ObjectStateManager, который отслеживает объекты при выполнении операций создания, обновления и удаления.
Средства Entity Framework получают файл на языке CSDL и формируют код уровня объектов. Этот код используется для работы с данными сущностей как с объектами и использования функциональных возможностей служб объектов. Этот сформированный код включает следующие классы данных:
Типизированный класс ObjectContext. Данный класс представляет контейнер EntityContainer для модели и является производным от ObjectContext.
Классы, представляющие типы сущностей и наследующие от EntityObject.
Классы, представляющие сложные типы и наследующие от ComplexObject.
Примечание. |
---|
Безопасная многопоточная работа класса ObjectContext не гарантируется. В многопоточных сценариях целостность объектов данных в классе ObjectContext гарантировать невозможно. |
Использование служб объектов
Службы объектов поддерживают следующие варианты поведения для программирования на платформе Entity Framework.
Запросы к данным как к объектам
Службы объектов позволяют с помощью LINQ, Entity SQL или методов построителя запросов выполнять запросы к модели Entity Data Model и возвращать данные в виде объектов. Дополнительные сведения см. в разделе Запросы объектов (платформа 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-сериализацию для объектов. Контрактная сериализация данных WCF полезна при работе с веб-службами. Двоичная сериализация особенно полезна при использовании состояния представления для сохранения объектов в приложении ASP.NET. Дополнительные сведения см. в разделе Сериализация объектов (платформа Entity Framework).
Управление идентификаторами объектов и отслеживание изменений
Службы объектов используют значения идентификаторов для отслеживания изменений объектов, обработки конфликтов и принятия решений относительно того, когда следует получать данные из источника данных. Дополнительные сведения см. в разделе Управление контекстом объекта (платформа Entity Framework).
Управление параллелизмом
Службы объектов могут отслеживать параллелизм, когда атрибуту ConcurrencyMode для одного или большего числа свойств задается значение fixed. В этом случае при обнаружении нарушений параллелизма службы объектов вызывают те или иные исключения. Дополнительные сведения см. в разделе Сохранение изменений и управление параллелизмом (платформа Entity Framework).
Управление соединениями
Службы объектов дают возможность явно управлять соединениями, используемыми контекстом объектов, и обеспечивают пользователя собственными соединениями для контекста объекта. Дополнительные сведения см. в разделе Управление соединениями в службах объектов (платформа Entity Framework).
Управление транзакциями
Службы объектов поддерживают транзакции .NET Framework для координации операций над источником данных и прикрепления к распределенным транзакциям. Дополнительные сведения см. в разделе Управление транзакциями в службах объектов (платформа Entity Framework).
Применение пользовательских объектов с моделью EDM
Службы объектов позволяют пользователям вручную определять свои объекты или использовать существующие объекты с Entity Data Model. Дополнительные сведения см. в разделе Настройка объектов (платформа Entity Framework).
См. также
Другие ресурсы
Службы объектов (платформа Entity Framework)
Задачи Entity Framework