Entitity Framework: отслеживание изменений в SOA с использованием подхода POCO - PullRequest
8 голосов
/ 23 февраля 2010

В нашем многоуровневом приложении мы обращаемся к базе данных через вызовы WCF. Мы создаем и располагаем контексты по запросу. Также мы используем подход POCO.
Мой вопрос в том, что в чистой модели POCO (полностью постоянные невежественные POCO) можно отслеживать изменения, пока мы создаем и располагаем контекст для запроса (как предыдущий контекст расположен в этом вызове службы)? Если да, то как EF справится с этой ситуацией? Насколько я вижу, 2 механизма (отслеживание изменений на основе снимков и отслеживание изменений на основе уведомлений с прокси-серверами) не смогут справиться с этим? Если нет, то как мы должны обрабатывать контекст, чтобы мы могли отслеживать изменения?

Ответы [ 3 ]

6 голосов
/ 07 мая 2010

Я бы сказал:

Не используйте объекты самоконтроля в чистой среде SOA: Объекты самоконтроля работают только тогда, когда ваши клиенты используют сгенерированные прокси-классы.

Когда вы делаете SOA по книге, вы не можете ожидать, что ваши клиенты быть .Net или даже больше .Net 4.0; Какой единственный сценарий в котором будут работать объекты самоконтроля. Ваши услуги будут бесполезен для любых других клиентов.

Просто мои 2 цента, С Уважением, Koen

3 голосов
/ 21 июля 2011

Само-отслеживающиеся сущности действительно решают эту проблему, если вы можете поделиться моделью с клиентом, а не использовать метаданные, сгенерированные ссылкой.

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

2 голосов
/ 24 февраля 2010

К сожалению, вы не найдете простого решения этой проблемы в Entity Framework v1.0. Было много обсуждений и мало разрешений. Это одна из многих известных проблем с EF v1.0, и так или иначе вам придется написать много кода для решения этой проблемы.

В .NET 4.0 команда ADO.NET представила Само-отслеживающиеся объекты для решения этой самой проблемы.

...