首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据每个组中的基最大值选择list类属性?

如何根据每个组中的基最大值选择list类属性?
EN

Stack Overflow用户
提问于 2015-12-29 11:45:25
回答 1查看 94关注 0票数 0

如何根据每个组中的基最大值选择list类属性?我试过了,但没有成功。

代码语言:javascript
运行
复制
public class STUDENT_DETAIL
{            
    public long? Registration_Id { get; set; }
    public string Admission_No { get; set; }
    public long? Class_Id { get; set; }
    public long? Section_Id { get; set; }
    public long? Academic_Year_Id { get; set; }
    public string Student_First_Name { get; set; }
    public string Student_Last_Name { get; set; }
    public DateTime? Date_Of_Birth { get; set; }
    public string Gender { get; set; }
    public string Blood_Group { get; set; }            
}

List<CUSTOM_STU_DETAIL> academicYr = new List<CUSTOM_STU_DETAIL>();

public PartialViewResult ReAdmission_of_Student(long? CompanyId, long? CompanyLocationId, long AcademicId, long? ClassID, long? SectionID)
{
    if (CompanyId != null && CompanyId != 0 && CompanyLocationId != null && CompanyLocationId != 0 && ClassID != null && ClassID != 0 && SectionID != null && SectionID != 0)
    {
        academicYr = (from s in db.Student_Re_Admission
                             order by s.Re_Admission_Id descending
                             group s by s.Registration_Id into stugrp           

                                   //let topp = stugrp.Max(x => x.Re_Admission_Id)

        select new CUSTOM_STU_DETAIL
        {
        }).ToList();
    }

    ViewBag.Student_List = StuList.ToList();

    return PartialView();
}

实际上,我想在linq中类似于下面的sql查询概念。

代码语言:javascript
运行
复制
select * from [Student_Re_Admission] where [Re_Admission_Id] in( SELECT max(Re_Admission_Id) FROM [Student_Re_Admission] group by Registration_Id )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 12:33:06

Re_Admission_Id中没有STUDENT_DETAIL,所以使用Admission_No代替。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
var result = from s in db.Student_Re_Admission
             where maxReAdmissionIds.Contains(s.Admission_No)
             select s;

然后,使用列表来获得结果。

但另一个问题是,如果maxReAdmissionIds超过2100元素将导致"sql中太多的元素“异常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34510341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档