sql - 用于生成临时表“AS OF”查询的 IQueryable 扩展
问题描述
未能找到令人满意的解决方案,让我在这里发布:
我们使用 NHibernate 作为我们的 ORM,并且刚刚开始使用 Sql Server 时态表。因此,我们需要对 IQueryable(或 HQL Builder 或 InterceptingProvider 或其他东西)进行某种扩展,以允许我们将“AS OF”子句添加到我们的查询中,例如
var results = session.Query<Company>
.Where(c => c.Name == "FogCreek")
.AsOf(DateTime.Today.AddYears(-1));
解决方案
我也一直在努力解决它并放弃了,因为我失去了太多时间试图找到更好的方法......
到目前为止,我已经FOR SYSTEM_TIME AS OF
使用自定义注入 SQL HqlGeneratorForMethod
,但这给了我无效的 SQL 表达式。所以我不得不修复它OnPrepareStatement
。这是 hacky 且不优雅的解决方案,但适用于大多数简单的情况。
请在此处查看我的解决方案,如果您找到更好的解决方案,请随时回复
推荐阅读
- for-loop - 如何在for循环中修复一张图像上的所有图?
- c# - 该进程因未处理的异常而终止 - ArgumentOutOfRangeException
- apache - 使用 .htaccess 将 http 重定向到 https - 使用 let-proxy 导致 ERR_TOO_MANY_REDIRECTS
- java - 如何使用标点符号从状态存储中删除旧记录?(卡夫卡)
- php - unlink 在 DOMDocument 打开的文档上返回错误
- prometheus - Prometheus 和 Alertmanager 中是否可以有动态 groupBy?
- c# - Identity Server 4 在从 UI 进行身份验证后添加声明
- javascript - 可缩放元素专注于主页滚动
- performance - 分支错误预测在哈希表查找性能中起什么作用?
- c++ - 如何为“警告”和“错误”设置不同的 NetBeans IDE 输出链接颜色