2015-12-29 15 views
0

如何选择每个组中基本最大值的列表类属性? 我试图像下面,但没有获得成功..如何选择每个组中基本最大值的列表类属性?

​​

其实我要像下面的SQL查询概念在LINQ ..

select * from [Student_Re_Admission] where [Re_Admission_Id] in(SELECT max(Re_Admission_Id) FROM [Student_Re_Admission] group by Registration_Id) 
+1

仅供参考 - 以大写字母命名课程是一种糟糕的做法。使用camelCase :) –

回答

0

有一个在STUDENT_DETAIL没有Re_Admission_Id,所以使用Admission_No代替。

var maxReAdmissionIds = 
      (from s in db.Student_Re_Admission 
      group s by s.Registration_Id 
       into grp 
       select (grp.Max(p => Convert.ToInt32(p.Admission_No))).ToString()) 
       .ToList(); 

集团通过Registration_Id比先选择Admission_No到列表中。

var result = from s in db.Student_Re_Admission 
      where maxReAdmissionIds.Contains(s.Admission_No) 
      select s; 

然后,使用列表得到结果。
但另一个值得关注的是如果maxReAdmissionIds多于2100个元素将导致“sql中的元素太多”异常。

+0

我的班级列表选择在哪里? –

+0

我不想var我想我的类作为列表的数据类型 –

+0

@abbasahmed [关于“var”](https://msdn.microsoft.com/zh-tw/library/bb383973.aspx),在这种情况下,'' result'将是'IEnumerable ',你可以通过.ToList()将它转换成'List '。 – kcwu

相关问题