Как отфильтровать строки и выбрать столбцы желаний со стороны клиента - PullRequest
0 голосов
/ 12 мая 2011

Рассмотрим этот сценарий:

У меня есть справочные данные, которые я пишу сервису, чтобы вернуть их своим клиентам. В моей программе я использую эти данные в разных типах.

Я хочу получитьименно то, что я хочу от базы данных от клиента и в динамическом режиме.

Я хочу использовать такой код:

public List<TResult> FindAll<T, TResult>(Func<T, bool> exp, Func<T, TResult> selector, int PageSize) where TResult : class
{        
}

проблема в том, что я не могу объявить свой интерфейс службы как универсальный иЯ не могу использовать этот код следующим образом:

public List<TResult> FindAll<Order, TResult>(Func<Order, bool> exp, Func<Order, TResult> selector, int PageSize) where TResult : class
{
    using (DataClasses1DataContext dc = new DataClasses1DataContext())
    {
        return dc.Orders.Where(exp).Select<Order, TResult>(selector).ToList<TResult>();
    }
}

Потому что:

  1. Порядок в функции действует как параметр, а не класс Порядка.

  2. мой TResult не объявлен в сервисе

Как я могу это сделать?Большое спасибо.

1 Ответ

1 голос
/ 12 мая 2011

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

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