Проксированные POCO-подобные объекты с самоконтролем - PullRequest
0 голосов
/ 09 июля 2011

Как я понимаю, проксированные объекты POCO могут отслеживать изменения только при присоединении к ObjectContext. Напротив, STE отслеживает изменения, даже будучи отсоединенным. Мне любопытно, почему нет поддержки прокси-сервера POCO, который будет реализовывать поведение STE внутри?

1 Ответ

1 голос
/ 09 июля 2011

Воспринимайте это только как мое личное мнение.

Не существует "прокси-серверов самообследования", потому что для текущей реализации это не имеет смысла.Почему:

  • Объекты самообследования были разработаны для поддержки сценариев наборов изменений через веб-службы, где объект может отслеживать изменения на стороне клиента, клиент передает эти изменения обратно в службу, а объект применяет изменения обратнок новому экземпляру контекста.
  • Для выполнения этой работы клиент и служба должны совместно использовать реализацию сущностей с самообследованием.

То есть предполагается использование STE.В любом другом сценарии они не имеют особого смысла

  • В приложении WinForms / WPF / Service, непосредственно обращающемся к EF, они вам не нужны, и их использование обычно плохой, потому что вы можетеиспользуйте прикрепленные сущности напрямую.
  • В веб-приложении они вам не нужны, потому что для этого потребуется хранить их либо в сериализованном виде на странице (= то же, что в состоянии просмотра), либо в сеансе / кэше.Первый сценарий - это проектный подход, который уже много лет не используется, и вам просто не следует его использовать, а второй следует избегать, насколько это возможно.

Итак, где вы видите использование «самотрекинговых прокси»??Вы хотите использовать их вместо STE?Зачем?И что более важно, как?Основным преимуществом реализации STE является то, что они сериализуемы, а динамически созданные прокси - нет!Если вы проверите, как работает сериализация через веб-сервисы (WCF), вы увидите, что все сериализуемые типы, передаваемые через сервисы, должны знать, когда сервис запущен.В противном случае будут выставлены только основные незашифрованные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...