NHibernate 合并问题

2024-03-13

我试图用 NHibernate 表达以下 SQL 查询

DECLARE @date DATETIME = NULL;

SELECT 
    ER.Id
,   ER.DocumentDate
FROM 
    ExpenseReport ER
WHERE
    ER.PeriodFrom >= COALESCE(@date, ER.PeriodFrom)
OR ER.PeriodTo <= COALESCE(@date, ER.PeriodTo);

所以,在 C# 部分我确实有以下类:

  • 对于实体:ExpenseReport
  • 对于我的搜索本身,一个单独的类

代码片段:

// ----- Entity class.
public partial class ExpenseReport
{
    public Nullable<System.DateTime> PeriodFrom { get; set; }
    // many other properties
}

// ----- Search parameter class.
public class SearchParameters
{
    public Nullable<System.DateTime> DateFrom { get; set; } 
    // many other properties
}

因此,现在将搜索参数分配给IQueryOver<ExpenseReport>

var q = SessionProvider.QueryOver<ExpenseReport>();

我现在对 NHibernate 有点迷失了......我现在该怎么做?

q.And( /*** I AM STUCK HERE **/)

起草的代码应该如下所示:

// left side
var left = Projections.Property<ExpenseReport>(ti => ti.PeriodFrom);
// right side
var right = Projections.SqlFunction("COALESCE"
        , NHibernateUtil.DateTime
        , Projections.Constant(search.DateFrom, NHibernateUtil.DateTime)
        , Projections.Property<ExpenseReport>(ti => ti.PeriodFrom)
    );
// the restriction using the GeProperty, taking two IProjections
var restriction = Restrictions.GeProperty(left, right);

// finally - our query get its WHERE
q.Where(restriction);

因此,我们首先创建两个投影。然后我们使用了Restrictions实用程序集来创建>= (Ge地产)。结果限制最终传递到 WHERE 子句中...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHibernate 合并问题 的相关文章

随机推荐

  • R 中分层样本的单向方差分析

    我有一个包含三组 a b c 的分层样本 这些样本是从较大的总体 N 中抽取的 所有组都有 30 个观察值 但它们在 N 中的比例不相等 因此它们的采样权重不同 我用surveyR 中的包来计算汇总统计数据和线性回归模型 并且想知道如何计算
  • 如何使用jquery在div内容更改时发出警报

    我想在 div 内容发生变化时发出警报消息 jquery api 是否为 div 元素提供了任何侦听器 绑定dom修改事件 document ready function test div bind DOMNodeInserted DOMS
  • Pandas 数据帧性能

    Pandas 确实很棒 但我真的很惊讶从 Pandas DataFrame 检索值的效率是多么低下 在下面的玩具示例中 即使是 DataFrame iloc 方法也比字典慢 100 倍以上 问题 这里的教训是否只是字典是查找值的更好方法 是
  • Angular 2打字稿调用javascript函数

    是否有正确的方法从 Angular 2 TypeScript 中的组件调用 JavaScript 函数 这是我的组件 import ElementRef AfterViewInit from angular core export clas
  • 无法运行 arquillian 测试

    我正在尝试使用 Arquillian 进行一些单元测试 但是我找不到它们在使用 Maven 部署时失败的原因 这是班级测试 package com ndeveloper spec test import javax inject Injec
  • 使用 SSL 访问 RDS - 不支持的记录版本 Unknown-0.0

    我正在使用亚马逊RDS MySQL并与SSL证书 默认证书位于http s3 amazonaws com rds downloads mysql ssl ca cert pem http s3 amazonaws com rds downl
  • PHPUnit 中的assertEquals 和assertSame 之间的区别?

    PHPUnit 包含一个assertEquals https phpunit de manual current en appendixes assertions html appendixes assertions assertEqual
  • 在 llvm 上运行 x86 程序

    是否可以使用llvm来运行x86程序 IE 我想使用 llvm 作为 x86 模拟器来运行 x86 程序 然后对 x86 程序进行检测 Thanks 我想你正在寻找LibCPU http LibCPU Org It has x86 前端 h
  • 安卓。画布缩放和平移

    我创建了自定义视图 您可以在其中触摸和缩放它 大部分作品都是在这个的帮助下创作的post http android developers blogspot com 2010 06 making sense of multitouch htm
  • 休眠在批处理文件中

    当编写批处理文件以在 Windows 机器上自动执行某些操作时 我需要暂停其执行几秒钟 通常在测试 等待循环中 等待进程启动 当时 我能找到的最好的解决方案是使用 ping 我没有骗你 来达到预期的效果 我找到了一篇更好的文章here ht
  • 在 Redhat 6.3 上安装 R 3+

    我想在我的 Red hat 集群上安装 R 其版本如下 cat etc redhat release Red Hat Enterprise Linux Server release 6 3 Santiago 当我访问 R 的主页时 这就是他
  • CQL3 现在是否需要 Cassandra 的架构?

    上周我刚刚参加了 Cassandra 速成课程 从 Thrift API 到 CQL 再到摸索 SuperColumns 才知道我不应该使用它们 而应该使用复合键 我现在正在尝试 CQL3 似乎我无法再插入到架构中未定义的列 或者在sele
  • Django - 应用程序目录中的静态文件

    在开发环境中 我想使用应用程序目录中的静态文件 settings py SITE ROOT os path dirname os path realpath file STATIC ROOT os path join SITE ROOT s
  • 如何在android中实现将sqlite导出到excel/csv文件?

    我正在开发 Android 应用程序 其中 SQlite 作为数据库 我想以编程方式将某些结果从数据库导出为 excel 文件格式 想要将该 excel 存储到本地设备路径 我遇到过以下链接 在Android中以编程方式将SQlite数据库
  • 如何分别从每个父节点获取子节点?

    我有一些数据 Xml
  • 如何根据opencv中的某些条件修改Mat的值?

    在Matlab中a a gt 50 0可以替换所有元素a大于 50 到 0 我想对 Mat 做同样的事情OpenCV https www mathworks com matlabcentral fileexchange 47953 comp
  • 从 Excel 导入数据时出现 SQL 错误 [已关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在从 Excel 工作表导入数据 我正在努力解决以下问题 执行 错误 消息错误 0xc020901c 数据流任务 1
  • 递归地检查给定字符串是否是平衡括号字符串

    作为 java 新手 以及编程新手 我在处理分配给我们的作业时遇到了麻烦 作业分为 3 部分 以检查给定字符串是否具有平衡括号 规则 如下 abcdefksdhgs 是平衡的 aaa
  • jquery 数据表固定列未定义

    我正在尝试使用jquery 数据表插件 http www datatables net 和以下固定列示例 http www datatables net extras fixedcolumns 但我收到错误Error ReferenceEr
  • NHibernate 合并问题

    我试图用 NHibernate 表达以下 SQL 查询 DECLARE date DATETIME NULL SELECT ER Id ER DocumentDate FROM ExpenseReport ER WHERE ER Perio