&;NHibernate准则中的and |运算符

&;NHibernate准则中的and |运算符,nhibernate,Nhibernate,我需要使用NHibernate标准编写,比如: SELECT something FROM sometable WHERE (something & 1) = 1 其中“something”是int 我不知道如何使用标准编写WHERE部分: ICriteria _Criteria = CreateCriteria(); _Criteria.Add(NHibernate.Criterion.Restrictions.Eq("something", ???); 在NHibernate有可

我需要使用NHibernate标准编写,比如:

SELECT something FROM sometable
WHERE (something & 1) = 1
其中“something”是int

我不知道如何使用标准编写WHERE部分:

ICriteria _Criteria = CreateCriteria();
_Criteria.Add(NHibernate.Criterion.Restrictions.Eq("something", ???);

在NHibernate有可能吗?如果没有,如果我需要在WHERE part中使用值,是否存在任何替代解决方案?

我不知道条件查询是否明确支持按位运算符,但我在文档中没有看到它

一种选择是使用HQL。请参阅,这表明HQL解析器将通过“&”。我还没试过这个

另一种选择是,您可以在SQL中定义一个函数来执行按位工作,然后在查询中使用它。这包括使用NH的本机SQL函数。您可以创建如下函数(根本没有测试):

CREATE FUNCTION dbo.BitwiseAnd (@something integer, @andedwith integer) RETURNS bit as
        return select @something & @andedwith