我正在创建一个方法,该方法可以从我的抽象过滤器对象创建 NHibernate 理解的过滤器(过滤器我的意思是一组 ICriteria 对象)。
public static IEnumerable<ICriterion> ToNhCriteria(this MyCriteria criteria)
{
// T4 generated function
// lots of result.Add(Expression.Or(Expression.Eq(),Expression.Eq)) expression trees - hard to generate
// Is there a way to generate HQL/Linq query here istead?
}
然后我想做类似的事情
session.CreateCriteria<Entity>().Add(myCriteria.ToNhCriteria())
过滤实体。问题在于使用表达式。方法(Expression.Or 等)非常繁琐(该方法已生成,并且我有多个 or 语句必须以某种方式连接到一个表达式中)。有没有办法避免使用 Expression.Or() 并使用 LINQ 或 HQL 创建 ICrietrion / ICriteria?