How do I get the MAX row with a GROUP BY in LINQ query?

SpoiledTechie.com picture SpoiledTechie.com · Oct 1, 2008 · Viewed 97.9k times · Source

I am looking for a way in LINQ to match the follow SQL Query.

Select max(uid) as uid, Serial_Number from Table Group BY Serial_Number

Really looking for some help on this one. The above query gets the max uid of each Serial Number because of the Group By Syntax.

Answer

tvanfosson picture tvanfosson · Oct 1, 2008
        using (DataContext dc = new DataContext())
        {
            var q = from t in dc.TableTests
                    group t by t.SerialNumber
                        into g
                        select new
                        {
                            SerialNumber = g.Key,
                            uid = (from t2 in g select t2.uid).Max()
                        };
        }