.net - كيف يمكنني الحصول على صف MAX باستخدام GROUP BY في استعلام LINQ؟




linq-to-sql (5)

لقد تحقق من الإجابة DamienG في LinqPad. بدلا من

g.Group.Max(s => s.uid)

يجب ان يكون

g.Max(s => s.uid)

شكرا لكم!

أنا أبحث عن وسيلة في LINQ لتتناسب مع اتباع استعلام SQL.

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

حقا تبحث عن بعض المساعدة في هذا واحد. يحصل الاستعلام أعلاه على أقصى uid لكل رقم تسلسلي بسبب Group By Syntax.


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

var q = from s in db.Serials
        group s by s.Serial_Number into g
        select new {Serial_Number = g.Key, MaxUid = g.Max(s => s.uid) }

في شكل سلسلة الأساليب:

db.Serials.GroupBy(i => i.Serial_Number).Select(g => new
    {
        Serial_Number = g.Key,
        uid = g.Max(row => row.uid)
    });

يمكنك تجربة ذلك ، ولكن يجب التأكد من نوع القيم لكل عمود

List<MyClass> result = myDataTable.AsEnumerable().Select(x=> new MyClass(){
     Property1 = (string)x.Field<string>("ColumnName1"),
     Property1 = (int)x.Field<int>("ColumnName2"),
     Property1 = (bool)x.Field<bool>("ColumnName3"),    
});




.net linq linq-to-sql