Реализован общий репозиторий с несколькими методами.Один из них таков:
public IEnumerable<T> Find(Expression<Func<T, bool>> where)
{
return _objectSet.Where(where);
}
Учитывая <T>
как <Culture>
, это легко назвать так:
Expression<Func<Culture, bool>> whereClause = c => c.CultureId > 4 ;
return cultureRepository.Find(whereClause).AsQueryable();
Но теперь я вижу (осознаю), чтоэтот вид запроса «ограничивается только одним критерием».Что я хотел бы сделать, это:
в приведенном выше примере с имеет тип культуры.Культура имеет несколько свойств, таких как CultureId, Name, Displayname, ... Как бы я выразил следующее: CultureId> 4 и Name.contains ('de') и в другом исполнении Name.contains ('us') и Displayname.contains ('ca') и ....
Эти запросы должны создаваться динамически.Я взглянул на деревья выражений (так как думал, что это решение моей проблемы - кстати, я никогда не использовал их раньше), но я не могу найти ничего, что указывает на мои требования.
Как это можно построить?
Заранее спасибо