未能找到令人满意的解决方案,让我在这里发布:
我们正在使用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));
答案 0 :(得分:0)
我也一直在努力,并且由于我浪费太多时间试图找到更好的方法而放弃了...
到目前为止,我已经使用自定义FOR SYSTEM_TIME AS OF
将HqlGeneratorForMethod
注入SQL,但这给了我无效的SQL表达式。所以我不得不在OnPrepareStatement
中修复它。这是一种骇人听闻的解决方案,但并非优雅的解决方案,但适用于大多数简单情况。
请查看我的解决方案here,如果找到更好的解决方案,请随时答复