C# Linq join-group by-ORDERBY降序查询
我有一个疑问:C# Linq join-group by-ORDERBY降序查询,c#,linq,join,group-by,C#,Linq,Join,Group By,我有一个疑问: from i in dc.TFFiles where i.Tid == tid group i by new { i.Title, i.Type } into gr select gr.OrderByDescending(g => g.Version).First(); 我想添加一个与另一个表的联接,这样我就可以访问第二个表的字段 以下是我需要的不带组的加入方式: 如何将查询分组与联接组合 像这样尝试,但它不会按版本降序排列结果。我
from i in dc.TFFiles
where i.Tid == tid
group i by new { i.Title, i.Type } into gr
select gr.OrderByDescending(g => g.Version).First();
我想添加一个与另一个表的联接,这样我就可以访问第二个表的字段
以下是我需要的不带组的加入方式:
如何将查询分组与联接组合
像这样尝试,但它不会按版本降序排列结果。我总是得到版本1,即使有更高版本的文件
var result =
from i in dc.TFFiles
where i.Tid == tid
group i by new { i.Title, i.Type } into gr
orderby gr.FirstOrDefault().Version descending
join c in dc.FCategories on gr.FirstOrDefault().CatId equals c.Id
select new { id = gr.FirstOrDefault().id, Title = gr.FirstOrDefault().Title, Version = gr.FirstOrDefault().Version };
也许你可以试试:
var result =
from i in dc.TFFiles
where i.Tid == tid
group i by new { i.Title, i.Type } into gr
join c in dc.FCategories on gr.FirstOrDefault().CatId equals c.Id
select new { id = gr.FirstOrDefault().id, Title = gr.FirstOrDefault().Title, Version = (from cv in gr select cv.Version).Max() };
问题是什么?如何将连接添加到LINQ?使用group by的连接查询clause@MegaTron尝试过,但无法使其与select gr.orderbydegeneratingg=>g.Version.First一起工作;
var result =
from i in dc.TFFiles
where i.Tid == tid
group i by new { i.Title, i.Type } into gr
join c in dc.FCategories on gr.FirstOrDefault().CatId equals c.Id
select new { id = gr.FirstOrDefault().id, Title = gr.FirstOrDefault().Title, Version = (from cv in gr select cv.Version).Max() };