2011-02-07 4 views
1

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

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

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

ответ

1

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

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

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

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

+0

Похоже, мне придется копаться в POCO'A –

0

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

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

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

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

+0

спасибо Jtew, я посмотрю POCO и посмотрю, работает ли это для меня. –

Смежные вопросы