如何在算法中创建嵌入术语的nhibernate标准?

如何在算法中创建嵌入术语的nhibernate标准?,nhibernate,nhibernate-criteria,Nhibernate,Nhibernate Criteria,例如: var Ex1 = Expression.Eq("DocAttrId", new decimal(-2)); var Ex2 = Expression.Eq("RowPos", new decimal(1)); var Ex3 = Expression.Eq("DocAttrId", new decimal(105510)); var Ex4 = Expression.Eq("DocAttrId", new decimal(-1)); var ExGroup1 = (Ex1 || Ex2

例如:

var Ex1 = Expression.Eq("DocAttrId", new decimal(-2));
var Ex2 = Expression.Eq("RowPos", new decimal(1));
var Ex3 = Expression.Eq("DocAttrId", new decimal(105510));
var Ex4 = Expression.Eq("DocAttrId", new decimal(-1));
var ExGroup1 = (Ex1 || Ex2);
var ExGroup2 = (Ex3 && ExGroup1);
var ExGroup3 = (Ex4 || ExGroup2);
_criteria.Add(ExGroup3);

如果我在列表或数组中有所有的Ex1…Ex4表达式,我可以通过构建一个标准来创建算法吗?

主题外,但您不需要像这样实例化小数:“-2”本身就可以正常工作。如何简单地添加“and”“or”条件?
var expressions = new[] {
    Expression.Eq("DocAttrId", new decimal(-2)),
    Expression.Eq("RowPos", new decimal(1)),
    Expression.Eq("DocAttrId", new decimal(105510)),
    Expression.Eq("DocAttrId", new decimal(-1)),
}

var ExGroup1 = Expression.Or(expressions[0], expressions[1]);
var ExGroup2 = Expression.And(expressions[2], ExGroup1);
var ExGroup3 = Expression.Or(expressions[3], ExGroup2);
_criteria.Add(ExGroup3);