Linq Queries over WCF - PullRequest
       1

Linq Queries over WCF

1 голос
/ 04 октября 2010

Я бы хотел, чтобы мое приложение выполняло следующие действия: 1. Отправляет запрос LINQ от клиента какой-либо службе WCF на каком-либо сервере 2. Этот сервер получает этот запрос LINQ и выполняет поиск linq-to-object 3.Затем сервер возвращает обратно результаты.

Возможно ли это?Если так, то как?Я не могу найти учебники по этой теме.

Примечание. Я не хочу отправлять вызов метода в службу WCF, которая затем выполняет базовый запрос LINQ.Мне бы хотелось, чтобы служба WCF получала какую-то форму пользовательского запроса LINQ и вычисляла его.

Ответы [ 4 ]

1 голос
/ 06 октября 2010

Если запрос Linq (от клиента) является вашей первостепенной важностью, то почему бы не использовать WCF Data Services;он поддерживает операции linq от клиента.

ashraf

1 голос
/ 04 октября 2010

Linq - просто делегат методов, выполняющих операции над коллекциями объектов.Поэтому, если ваш клиент знает о типах, которые должен обрабатывать ваш сервер, то вы сможете создавать и передавать Func<T> объекты на сервер для обработки его коллекций объектов.Я сделал это один раз.Просто помните, что ваш клиент должен знать обо всем, что ваш сервер может получить в запросе linq.

Если вы не хотите, чтобы клиент мог создавать запросы linq с нуля, то я не вижу никакиххороший способ.Несколько плохих, но я не пойду туда.

В качестве полностью вымышленного примера вы можете сделать так:

        Func<Order,bool> filter = o => o.Price > 0;
        // pass the filter object to the server and on server do:
        var res = objectCollection.Where(filter);

При условии, что ваши объекты имеют тип Order и содержатЕсли свойство называется «Цена», запрос в этом случае вернет все заказы, которые чего-то стоят.Как вы также можете видеть, ваш клиент должен знать о типе «Заказ», чтобы настроить запрос.

0 голосов
/ 04 октября 2010

Я не уверен, что может написать linq на лету ... кто-то поправит меня, если я ошибаюсь.

Лучшим способом было бы использовать dataadaptors, просто передать ему sql и вернуть набор данных.

0 голосов
/ 04 октября 2010

Одним простым и простым способом будет отправка запроса LINQ в виде строки в сервисный метод с его типом возврата с соответствующим объектом. Таким образом, служба просто выполнит запрос и вернет вам сериализованный объект (может быть).

Но действительно ли вы хотите иметь универсальный метод для возврата набора запросов LINQ?

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