1

Мы используем службу данных WCF, чтобы бронировать нашу сторону сервера данных и предоставлять сторонним пользователям простой доступ к данным OData. Серверная сторона вещей была относительно простой. С другой стороны, клиентская сторона дает нам возможность.Услуги передачи данных WCF: обработка объекта во время сбережения

Мы переходим от обычной структуры Entity Framework к службам данных, и мы создали сборку, которая содержит сгенерированные объекты-клиенты, которые общаются с службой данных (через ссылку на службу). Эти классы являются частичными, поэтому мы добавили к ним некоторые логические и расширенные свойства. Все это прекрасно работает.

Проблема, с которой мы сталкиваемся, заключается в том, что нам нужно обрабатывать наши объекты в экономичное время, потому что им необходимо выполнить некоторую расширенную сериализацию до того, как они будут отправлены по проводу. Класс DataServiceContext содержит два события: WritingEntity и ReadingEntity. Событие ReadingEntity на самом деле происходит в нужное время для нас (десериализация дескриптора объекта). Событие WritingEntity происходит в WRONG для нас (после сериализации после объекта).

Есть ли способ поймать объект, прежде чем он будет записан в запрос, чтобы мы могли вызвать метод для объекта, который должен быть написан?

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

ответ

0

В настоящее время в DataServiceContext нет никакого крючка, чтобы делать то, что вы хотите. Самый близкий, о котором я могу думать, - это подход, который вы предложили, пройдя все сущности и находки, которые были изменены. Вы можете сделать это в своем собственном методе SaveChanges в классе контекста (который также является частичным).

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