Я хочу добавить метод к моему базовому классу репозитория, который позволяет мне использовать выражения LIKE , но я не совсем уверен о том, как это сделать. Я хочу создать общий метод, который просматривает переданное дерево выражений и ищет подстановочные знаки в переданных строковых значениях. Затем он соответственно генерирует оператор QueryOver
.
Сейчас у меня есть следующее:
public IList<T> FindAll(Expression<Func<T, bool>> criteria, char wildCard)
{
return SessionFactory.GetCurrentSession()
.QueryOver<T>()
.Where(criteria)
.List();
}
Очевидно, что самое сложное еще впереди. Мне нужно просмотреть дерево выражений и динамически построить запрос, используя QueryOver
. Ищу советы о том, как это сделать. Или я просто зря трачу здесь свое время и должен просто создать в своих репозиториях отдельные методы, которые обрабатывают запросы LIKE ?
В идеале я хотел бы отметить разницу между следующим:
Таким образом, сгенерированный запрос будет выглядеть следующим образом: