Веб-службы и модель EDM (сценарии приложений)
Entity Data Model обеспечивает концептуальный уровень абстракции для источника данных. Службы объектов материализуют сущности, определенные в концептуальном уровне, в объектах CLR, к которым могут обращаться клиентские приложения, например Windows Forms или ASP.NET. Entity Framework поддерживает сериализацию объектов сущностей в форматы, обеспечивающие удаленный обмен объектами сущностей и обмен на основе сообщений, например с веб-службами или с использованием технологии WCF. Объекты могут быть сериализованы с помощью двоичной сериализации, XML-сериализации и контрактной сериализации WCF для передачи в двоичном потоке или по протоколам на основе сообщений. Дополнительные сведения см. в разделе Сериализация объектов (платформа Entity Framework). Объекты также могут быть получены из сообщения или потока, десериализованы и присоединены к контексту объекта. Дополнительные сведения см. в разделе Присоединение объектов (платформа Entity Framework).
Службы ADO.NET Data Services позволяют также предоставлять динамический доступ к данным модели EDM в XML-формате, пригодном для использования приложениями. Доступ к этим данным выполняется через стандартные HTTP-операции REST, то есть GET, PUT и POST. Дополнительные сведения см. в разделе Платформа служб данных ADO.NET.
При создании веб-служб или служб WCF, которые используют Entity Framework, следует учитывать следующие факторы.
Поддерживается двоичная и контрактная сериализация с полными графами. При XML-сериализации связанные объекты не сериализуются.
Объекты всегда десериализуются в состоянии Detached. Может потребоваться присоединить или добавить объект в ObjectContext или просто применить изменения свойств к исходному объекту. Дополнительные сведения см. в разделе Присоединение объектов (платформа Entity Framework).
Рекомендуются службы без сохранения состояния. Службы должны проектироваться таким образом, чтобы контекст объекта поддерживается только в течение обработки запроса или ответа. Порядок обмена сообщениями должен включать достаточно данных, чтобы изменения могли применяться без сохранения объекта или повторного запроса к источнику данных для получения исходного объекта. Например, служба, которая позволяет клиенту обновить объект, должна требовать возвращения обновленного объекта вместе с исходным. Это позволит ей применить изменения к исходному объекту вызовом метода ApplyPropertyChanges, не получая исходный объект из базы данных и не сохраняя его в памяти. Дополнительные сведения см. в разделе Как применить изменения к отсоединенному объекту (платформа Entity Framework).
См. также
Основные понятия
Общие сведения о службах объектов (платформа Entity Framework)