1
我對實體框架和LINQ很不熟悉。我有一個單獨的實體設置了一些列,我想過濾我們的一些特殊行。 其中4行命名爲Guid(字符串),Year(短),Month(短)和FileIndex(短)。我想要獲取Guid-Year-Month的每個現有組合中具有最大FileIndex的所有行。如何簡化LINQ查詢來過濾掉一些特殊的行
我目前的解決辦法是這樣的:
var maxFileIndexRecords = from item in context.Udps
group item by new { item.Guid, item.Year, item.Month }
into gcs
select new { gcs.Key.Guid, gcs.Key.Year, gcs.Key.Month,
gcs.OrderByDescending(x => x.FileIndex).FirstOrDefault().FileIndex };
var result = from item in context.Udps
join j in maxFileIndexRecords on
new
{
item.Guid,
item.Year,
item.Month,
item.FileIndex
}
equals
new
{
j.Guid,
j.Year,
j.Month,
j.FileIndex
}
select item;
我覺得應該有更多的表現更短的解決方案。有人給我提示嗎? 謝謝
理論上我相信你應該能夠做一個嵌套查詢,你可以選擇嵌套查詢的最大值。嵌套查詢就是你的分組。 – smoksnes