我正在构建一个复杂的安全机制来根据各种权限过滤对象的访问。
作为其中的一部分,我希望在我的查询中有一个初始OR
,在权限允许访问某些子集之前从查询中排除所有可能的结果。在SQL中它看起来像这样:
select *
from Table
where (1 = 0)
or ( /* various predicates */ )
但是,我不确定如何通过条件API创建初始1 = 0
。我可能还需要在某些时候创建1 = 1
,但我认为这将是一个类似的任务。
我该怎么做?
答案 0 :(得分:1)
Tuna Toksoz建议这种方法简单明了:
var stuff = session.CreateCriteria<Stuff>()
.Add(Restrictions.Eq(Projections.Constant(1), 0))
.List<Stuff>();