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() };