可查询扩展生成时态表“ AS OF”查询

时间:2018-11-05 15:19:29

标签: sql sql-server nhibernate iqueryable temporal-tables

未能找到令人满意的解决方案,让我在这里发布:

我们正在使用NHibernate作为我们的ORM,并且刚开始使用Sql Server临时表。因此,我们需要对IQueryable(或HQL Builder或InterceptingProvider或 something )进行某种扩展,以使我们可以在查询中添加“ AS OF”子句,像

var results = session.Query<Company>
.Where(c => c.Name == "FogCreek")
.AsOf(DateTime.Today.AddYears(-1));

1 个答案:

答案 0 :(得分:0)

我也一直在努力,并且由于我浪费太多时间试图找到更好的方法而放弃了...

到目前为止,我已经使用自定义FOR SYSTEM_TIME AS OFHqlGeneratorForMethod注入SQL,但这给了我无效的SQL表达式。所以我不得不在OnPrepareStatement中修复它。这是一种骇人听闻的解决方案,但并非优雅的解决方案,但适用于大多数简单情况。

请查看我的解决方案here,如果找到更好的解决方案,请随时答复