我知道如何使用Disjunction()
添加OR限制,但我需要添加到这组标准中,而且我至少需要2个标准。我想知道如何将单个OR添加到现有标准中。
半代码示例。
model.RootCriteria.Add(restriction)
< - 限制一个(例如名称'name')
接下来几行后我想根据变量添加AND或OR限制。
if(AND)
model.(Here add AND restriction)
< - 将现有的内容添加到model.RootCriteria.Add(限制)并运行
else if(OR)
model.(Here add OR restriction)
< - 向现有的我不知道如何添加OR
我希望收到的输出是:
Where name like 'name ' (AND or OR) second restriction;
答案 0 :(得分:0)
我们如何使用条件的方式始终是.Add()
opertion,需要ICriterion
var criteria = session.CreateCriteria<Employee>();
criteria.Add(
Restrictions.On<Employee>((x) => x.LastName).IsLike("Xyz", MatchMode.Start)
);
即使我们想要使用OR,我们也必须通过.Add()添加,如下所示:
criteria.Add(Restrictions.Or(
Restrictions.On<Employee>((x) => x.FirstName).IsLike("Abc", MatchMode.Start)
, Restrictions.On<Employee>((x) => x.FirstName).IsLike("Def", MatchMode.Start)
));
诀窍是Restrictions.Or
也会返回ICriterion
......
同时检查以下内容: