我有這樣一個表(表名:帖子):實體框架選擇每組的一個日期
+----+--------------------------+-------+------------+
| id | content | type | date |
+----+--------------------------+-------+------------+
| 0 | Some text | TypeA | 2013-04-01 |
| 1 | Some older text | TypeA | 2012-03-01 |
| 2 | Some even older texttext | TypeA | 2011-01-01 |
| 3 | A dog | TypeB | 2013-04-01 |
| 4 | And older dog | TypeB | 2012-03-01 |
| 5 | An even older dog | TypeB | 2011-01-01 |
+----+--------------------------+-------+------------+
使用LINQ表達我想找到每種類型的最新內容,所以結果應該是
Some text | TypeA
A dog | TypeB
我已經嘗試了幾件事情,但沒有指出非工作表達式。
組運行查詢之前或之後運行?那麼它會從數據庫中拉出每一行,然後對它們進行分組,或者是否將查詢語句添加到查詢中,以便僅拉取分組行? – Samir 2017-12-27 11:21:36
@Samir:這確實是一個很好的觀點。根據EF上的版本,它似乎有不同的行爲。 EF 7似乎將數據加載到客戶端並進行分組:https://stackoverflow.com/questions/11564311/sql-to-entity-framework-count-group-by。 EF核心似乎有支持sql組:https://github.com/aspnet/EntityFrameworkCore/pull/9872。爲了確認這一點,你可以使用一個分析器來查看實際的sql查詢。 – 2017-12-30 02:31:58
@Samir:如果您使用的是EF Core最新版本且性能可以接受,即使sql查詢不使用group by(將函數中的代碼包裝進來,以便稍後需要重構),也可以考慮使用此解決方案,似乎人們已經考慮到了這一點,後來的版本可能會支持這一點。否則,你必須編寫原始的sql查詢。 – 2017-12-30 02:36:08