【发布时间】:2010-08-10 10:49:53
【问题描述】:
我有一个存在于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 不是很熟悉,所以我在这里可能超出了我的深度。我主要是想了解什么是可能的。否则,我将不得不放弃通用方法,转而为每个服务使用更具体的存储库方法。谢谢。
【问题讨论】:
标签: c# nhibernate generics lambda