NHibernate 对分组聚合支持的不好
Hibernate 对分组聚合支持的不好,例如下面的代码:
1 2 3 4 5 6 7 | var query = from raqi in session.Query<factstatraqi>() group raqi by raqi.SpaceKey into g select new { g.Key, Count = g.Count(r => r.Raqi > 1) };</factstatraqi> |
这样的查寻生成的Sql如下,很明显是错误的,
1 2 3 4 5 6 7 | select factstatra0_.[SpaceKey] as col_0_0_, cast ( count (*) as INT ) as col_1_0_ from [dbo].[FactStatRaqi] factstatra0_ group by factstatra0_.[SpaceKey] |
LinqToSql可以生成正确的sql
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- Region Parameters DECLARE @p0 Float SET @p0 = 1 -- EndRegion SELECT [t1].[SpaceKey] AS [ Key ], ( SELECT COUNT (*) FROM [FactStatRaqi] AS [t2] WHERE ([t2].[RAQI] > @p0) AND ([t1].[SpaceKey] = [t2].[SpaceKey]) ) AS [ Count ] FROM ( SELECT [t0].[SpaceKey] FROM [FactStatRaqi] AS [t0] GROUP BY [t0].[SpaceKey] ) AS [t1] |
看来,NH的Linq查寻还有很长的路要走。
张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。
本博客已经迁移到 GitHub , 围观地址: https://beginor.github.io/
分类:
NHibernate
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架