Replies: 1 comment 1 reply
-
我觉得即使用了 ORM 仍然要保持对 SQL 的熟练习惯,ef 产生的 SQL 不忍直视啊 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
很多人都会遇到“对表分组,然后按条件取前N(N≥1)条数据”的业务需求。例如FreeSql issue区就有:#441, #731 等等。
EF Core以前不支持该功能,但EF Core 6增强了GroupBy:https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-6.0/whatsnew#improved-groupby-support 。例如:
生成SQL:
而FreeSql在3.2.666版本之前,似乎只能通过分步
ToSql
和WithSql
实现。在666版本之后,因为新增了嵌套查询WithTempQuery
,也可以生成类似的语句了,但我个人觉得不够“自然”。例如作者在#441 给出的样例:生成SQL:
所谓“自然”指的是使用者面对这样的问题,第一反应想到应该用
WithTempQuery
——而根据我个人的观察,大部分人对该问题的第一反应是:尝试使用“GroupBy”。我个人认为EF Core的方式更符合使用者解决该问题的“直觉”。是否同样可以增强FreeSql的GroupBy相关API呢?又或者可以有其他方面的优化?欢迎各位参与讨论,谢谢!
Beta Was this translation helpful? Give feedback.
All reactions