我有一個表,可以稱之爲Record。包含: ID(int)| CustID(int)|時間(日期時間)|數據(VARCHAR)C#LINQ查詢(MYSQL EF) - 獨特和最新記錄
我需要爲每個客戶的最新(最近)的記錄:
SQL
select * from record as i group by i.custid having max(id);
LINQ版本1
dgvLatestDistinctRec.DataSource = from g in ee.Records
group g by g.CustID into grp
select grp.LastOrDefault();
這將引發錯誤:
System.NotSupportedException was unhandled by user code Message=LINQ to Entities does not recognize the method 'Faizan_Kazi_Utils.Record LastOrDefault[Record ](System.Collections.Generic.IEnumerable`1[Faizan_Kazi_Utils.Record ])' method, and this method cannot be translated into a store expression. Source=System.Data.Entity
LINQ版本2
var list = (from g in ee.Records
group g by g.CustID into grp
select grp).ToList();
Record[] list2 = (from grp in list
select grp.LastOrDefault()).ToArray();
dgvLatestDistinctRec.DataSource = list2;
這工作,但效率很低,因爲它從數據庫加載到內存中的所有記錄,然後提取剛剛過去的(最新成員)各組。
是否有任何LINQ解決方案接近所提到的SQL解決方案的效率和可讀性?
您是如何實現Mysql + LINQ的。 DBSet是否支持Mysql?如果是這樣,你可以說怎麼樣?我渴望達到這個目標,並在上週放棄了。 – prabhakaran
我只需要核心點,至少在你放置連接字符串的地方。 – prabhakaran