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
-
很多人都会遇到“对表分组,然后按条件取前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