我正在使用Fluent NHibernate查询存储在SQL Server temporal table中的数据。
SELECT * FROM [MyDB].[dbo].[MyTable] for system_time as of '2022-12-28T21:00:00.0000000' where ...
通过NHibernate。看起来NHibernate中没有任何内置的方法可以运行该查询。我可以运行下面这样的查询,但这只会命中当前表,而不会命中历史表。
session.QueryOver<MyDTO>().Where(x => x.TemporalPeriodStart > ...)
1条答案
按热度按时间brccelvz1#
您可以执行本机SQL查询(并返回非托管实体)。查询需要指定:
示例:
值得注意的是,自定义IResultTransformer应该覆盖"Equals"和"GetHashCode",否则由于查询转换不会被缓存,可能会发生内存泄漏。
您还可以使用命名SQL查询,它可以在Map文档中定义,并以与命名HQL查询相同的方式调用...