用于生成临时表"AS OF"查询的 IQueryable 扩展



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

我们使用NHibernate作为我们的ORM,并且刚刚开始使用SqlServer时态表。因此,我们需要对IQueryable(或HQL Builder或InterceptingProvider或(进行某种扩展,以允许我们在查询中添加"AS of"子句,类似

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

我也一直在努力,因为我花了太多时间试图找到更好的方法而放弃了。。。

到目前为止,我已经使用自定义HqlGeneratorForMethodFOR SYSTEM_TIME AS OF注入到SQL中,但这给了我无效的SQL表达式。所以我不得不在OnPrepareStatement中修复它。这是一个棘手而不优雅的解决方案,但适用于大多数简单的情况。

请在这里查看我的解决方案,如果您找到更好的解决方案,请随时回复

相关内容

  • 没有找到相关文章

最新更新