#c# #wcf #wcf-data-services
#c# #wcf #wcf-data-services
Вопрос:
Я только что начал работать с WCF Data Services, поэтому прошу прощения, если в моих словах нет смысла.
Я создаю онлайн-регистратор событий / средство просмотра. Для этого я создал ado.net модель данных объектов и служба данных wcf. Это работает нормально, и я могу добавлять события в свой сервис.
Сейчас я работаю над созданием клиента Windows для просмотра событий, и мне было интересно, есть ли какой-либо подход к регулярному обновлению клиента новыми событиями. Поскольку будет большое количество событий, кажется неэффективным загружать все события для каждого обновления.
Чтобы предоставить больше информации, я могу упомянуть следующее:
1. Пользовательский класс TraceListener в программном обеспечении A отправляет события в службу данных.
2. Поскольку службы передачи данных wcf могут выступать в качестве источника данных, я решил использовать этот подход вместо обычного веб-сервиса.
3. В настоящее время я создаю клиент в WPF.
Я с нетерпением жду любых ответов на этот вопрос.
Спасибо, Стефан
Ответ №1:
Службы обработки данных WCF предоставляют ваши данные с использованием протокола OData. Это означает, что ваш клиент может легко запросить вашу службу данных с помощью LINQ.
Для каждого запроса, который клиент отправляет на сервер, сохраняйте временную метку. В следующем запросе запрашивайте только те события, которые произошли после метки времени, используя запрос LINQ на прокси-сервере, сгенерированном на основе ссылки на службу.
var newEvents = myServiceRef.Events.Where(x => x.Timestamp >= lastTimestamp);
Смотрите также http://www.odata.org / подробнее о протоколе OData и http://msdn.microsoft.com/en-us/library/ee622463.aspx подробнее об использовании LINQ для доступа к службам передачи данных WCF.
Комментарии:
1. Привет, спасибо за ваш ответ. Добавлять ли новые события вручную в отдельную коллекцию на клиенте или есть какой-то способ добавить новый запрос к исходному?