Служба WCF с DataContracts VS Объект Entity Framework объекта по умолчанию

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

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

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

2 ответа

Решение

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

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

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

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

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

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

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

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

Другие вопросы по тегам