2016-06-07 147 views
-1

我有以下結果集。如何獲取符合條件的最新歷史記錄:Status ='A'in linq?分組是在實體標識進行,記錄將在歷史記錄標識降序排序在linq獲取最新記錄

History ID Entity ID Status 
2969  6957  I 
2968  6957  A 
2967  6957  A 
2303  6957  I 
1000  6958  A 
55   6959  A 
50   6959  I 
45   6960  I 
40   6960  A 

結果應該給我

History ID Entity ID Status 
1000  6958  A 
55   6959  A 
+0

爲什麼你只希望收到兩個結果?您似乎有5條記錄符合您提供的「狀態='A'」限制。你是否還有另一個限制? –

+0

Hi Rion,歷史ID爲2969的實體標識爲6957的最新歷史記錄具有狀態I,因此不應選擇此記錄。實體ID 6960 –

+0

的情況類似,這很有幫助。 [D斯坦利的迴應](http://stackoverflow.com/a/37687465/557445)應該完成你正在尋找的東西。我只是想要一些額外的澄清,因爲它不清楚。 –

回答

0

第一組由實體,並得到各組的「最新」的記載。最後檢查狀態A

histories.GroupBy(h => h.EntityId) 
     .Select(g => g.OrderByDescending(h => h.HistoryID) 
         .First()) 
     .Where(h => h.Status == "A"); 
+0

工作!謝謝。 –