LINQ и ИЛИ Критерии - PullRequest
       18

LINQ и ИЛИ Критерии

0 голосов
/ 24 августа 2011

как я могу программно создать запрос EF (методы расширения с лямбдой). Я понимаю критерии и . Вот псевдокод:

var query = repository.Where(x => x.Name == "aName");

foreach(string filter in filters)
{
   query = query.Where(x => x.FilterValue.Contains(filter))
}

Но я хочу не оператор and. Я хотел бы или оператор. Как мне это сделать? Как я могу создавать сложные критерии деревьев в коде?

1 Ответ

1 голос
/ 24 августа 2011

http://www.albahari.com/nutshell/predicatebuilder.aspx

PrdicateBuilder - отличное решение.Но это сложно и не так легко понять.См. Ссылку на другой вопрос в комментарии.

Также это полезно: иногда бывает удобно прийти с другого направления:

string[] filter = {"A", "B"};
var returnValue = repository
                .Where(x => x.Name == "aName")
                .Where(x => filter.Any(f => (x.FilterValue).Contains(f)))
                .ToList();
...