Как динамически создавать и возвращать предикат linq на основе ввода пользователя

Я немного застрял на этом. В основном у меня есть метод, которым я хочу вернуть выражение предиката, которое я могу использовать в качестве условия Where. Я думаю, что мне нужно сделать примерно следующее: http://msdn.microsoft.com/en-us/library/bb882637.aspx , но я немного застрял в том, что мне нужно делать.

Метод:

private static Expression> GetSearchPredicate(string keyword, int? venueId, string month, int year)
{
    if (!String.IsNullOrEmpty(keyword))
    {
        // Want the equivilent of .Where(x => (x.Title.Contains(keyword) || x.Description.Contains(keyword)));
    }
    if (venueId.HasValue) 
    {
        // Some other predicate added...
    }

    return ??

}

Пример использования:

var predicate = GetSearchPreducate(a,b,c,d);
var x = Conferences.All().Where(predicate);

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

8
задан Matt Roberts 14 October 2010 в 11:14
поделиться