NHibernate包括/排除所有

时间:2009-11-05 10:21:17

标签: nhibernate criteria

我正在构建一个复杂的安全机制来根据各种权限过滤对象的访问。

作为其中的一部分,我希望在我的查询中有一个初始OR,在权限允许访问某些子集之前从查询中排除所有可能的结果。在SQL中它看起来像这样:

select   *
from     Table
where    (1 = 0)
or       ( /* various predicates */ )

但是,我不确定如何通过条件API创建初始1 = 0。我可能还需要在某些时候创建1 = 1,但我认为这将是一个类似的任务。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

Tuna Toksoz建议这种方法简单明了:

var stuff = session.CreateCriteria<Stuff>()
    .Add(Restrictions.Eq(Projections.Constant(1), 0))
    .List<Stuff>();