NHIbernate添加OR条件查询到现有的条件
本文关键字:条件 查询 添加 OR NHIbernate | 更新日期: 2023-09-27 18:15:57
我知道如何使用Disjunction()
添加OR限制,但我需要添加到这组标准中,并且我总是需要至少2个标准。我想知道如何在现有的标准中添加单个OR。
半代码示例。
model.RootCriteria.Add(restriction)
<-限制一(例如名称像'name')
接下来,在几行之后,我想根据变量添加AND或or限制到已经存在的
if(AND)
model.(Here add AND restriction)
<-添加AND到现有的只有model.RootCriteria.Add(限制),它工作
else if(OR)
model.(Here add OR restriction)
<-添加OR到现有的。我不知道如何做到这一点
输出是:
Where name like 'name ' (AND or OR) second restriction;
我们处理标准的方式总是通过.Add()
操作,它接受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
…
也检查这些:
- 在NHibernate中使用OR子句
- NHibernate QueryOver with WhereRestriction as OR
- 15.2。缩小结果集