У меня есть универсальный метод, который существует в EntityRepository, который получает сущности по имени, который определяется следующим образом:
public IEnumerable<T> GetEntitiesByName<T>(string searchExpression)
where T : class, ISearchableEntity, new()
{
return _session.CreateCriteria<T>()
.Add(LambdaSubquery.Property<Fund>(x => x.Id)
.AddNameSearchCriteria<T>(searchExpression)
.List<T>();
}
Существует ряд служб, использующих этот метод, и все было в порядке ... но теперь у меня есть требование, чтобы некоторые службы требовали более определенных возможностей поиска, чем доступно в этом методе.
Так что мне интересно, могу ли я передать DetachedCriteria как выражение (или что-то еще), которое я мог бы включить в запрос? Каждый сервис, которому нужны разные функции, может передать нужное ему выражение.
Я не очень хорошо знаком с NHibernate или Expressions, так что я мог бы быть здесь не в себе. Я в основном пытаюсь понять, что возможно. В противном случае мне придется отказаться от универсального метода в пользу более конкретных методов репозитория для каждого сервиса. Спасибо.