【问题标题】:& and | operators in NHibernate criteria& 和 | NHibernate 标准中的运算符
【发布时间】:2011-02-07 08:46:45
【问题描述】:

我需要使用 NHibernate 标准编写如下内容:

SELECT something FROM sometable
WHERE (something & 1) = 1

其中“某物”是 int。

我不知道如何用条件编写 WHERE 部分:

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

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

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

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

    一种选择是使用 HQL。请参阅this SO answer,这表明 HQL 解析器将通过“&”。我还没有真正尝试过。

    另一种选择是您可以在 SQL 中定义一个函数来执行按位工作,然后在查询中使用它。这个blog post 涵盖了使用来自 NH 的本机 SQL 函数。您可以制作一个类似的功能(根本没有测试过):

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 2012-04-07
      • 1970-01-01
      • 2021-04-28
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      相关资源
      最近更新 更多