Служба WCF с DataContracts VS Объект Entity Framework объекта по умолчанию - PullRequest
1 голос
/ 07 февраля 2011

Каковы преимущества и недостатки использования службы WCF с объектом Entity Framework DataContracts VS Entity Framework?

Если я сгенерирую Контракты с данными, используя ADO.net Self Tracking Entity Generator, классы в моем слое данных.

Как лучше всего использовать его в моей службе WCF? Будет ли сгенерирован генератор данных ADO.net, сгенерированный с помощью datacontract, с помощью службы, или служба WCF все равно будет использовать объекты инфраструктуры Entity Framework по умолчанию?

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

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

Это невозможно с объектами Entity Framework, поскольку он может отслеживать изменения только в том случае, если объект присоединен к ObjectContext, но объект отсоединен при возврате из операции веб-службы.

Недостаток STE заключается в том, что вам необходимо совместно использовать сборку, которая определяет их среди службы и всех клиентов. STE не предназначены для совместимых решений.

В настоящее время большинство проектов разрабатываются с субъектами третьего типа - POCOs . POCO также не могут отслеживать изменения при отсоединении от ObjectContext. Это особенность STEs.

0 голосов
/ 07 февраля 2011

Это зависит от того, какую работу вы делаете.

Использование DTO (объектов передачи данных), которые формируют ваши контракты данных и отделены от модели EF, даст вам больший контроль над тем, что сериализуется или нет.Это важно для совместимости и управления версиями с несколькими клиентами.

http://martinfowler.com/eaaCatalog/dataTransferObject.html

Использование EF с POCO, вероятно, является следующим с точки зрения управления и разделения с помощью базы данных по умолчанию, сгенерированной последней.Однако эти два способа проще в использовании и более гибкие при использовании с клиентами Silverlight.

...