使用带有聚合函数的LINQ在列上进行SELECT

时间:2014-01-21 01:11:30

标签: c# linq

我选择创建一个数据集,该数据集只是在选择了最大BreadCrumbID的行之后才从tbBreadCrumb表中获得StatusID但不知道如何操作。基本上,我只想将StatusID返回给JSON但是我得到红色下划线说:“int不包含'Select'的定义设置而没有扩展方法'选择'你可能错过了一个程序集吗?”

这是我的代码:

[WebMethod]
    public static object getMaxBreadCrumbByProjectID(int id)
    {
        using (dbPSREntities5 myEntities = new dbPSREntities5())
        {
            var thisProject = myEntities.tbBreadCrumbs.Where(x => x.ProjectID == id).Max(x => x.BreadCrumbID);

            var columns = thisProject.Select(x => new { x.StatusID }).ToList(); <--- this has the red underline and error message.

            return columns;
        }
    }

2 个答案:

答案 0 :(得分:3)

由于错误试图告诉您,thisProject已经是一个数字。

Max()返回最高值,而不是集合。

答案 1 :(得分:1)

Max返回您的最大BreadCrumbId这是一个整数。请尝试:

var id = myEntities.tbBreadCrumbs.Where(x => x.ProjectID == id).Max(x => x.BreadCrumbID);
var columns = myEntities.tbBreadCrumbs.Where(x => x.BreadCrumbID == id)
                                      .Select(x => x.StatusID).ToList();