C#使用LINQ选择行的最大ID
我有一个breadcrumb表,我想返回最近插入的行。 在SQL中它将是一个MAX()
函数,但不知道如何在LINQ中执行等效操作。 基本上我想选择具有最高BreadCrumbID WHERE ProjectID = 49
。
这是我现在的查询,它将选择所有行WHERE ProjectID = 49
。 我想选择具有最高BreadCrumbID
的行。
谢谢!
码:
using (dbPSREntities5 myEntities = new dbPSREntities5()) { var currentStatus = (from tbBreadCrumb in myEntities.tbBreadCrumbs.Where(x => x.ProjectID == 49) select new { Status = tbBreadCrumb.BreadCrumbID, }); }
试试这个:
using (dbPSREntities5 myEntities = new dbPSREntities5()) { var currentStatus = (from tbBreadCrumb in myEntities.tbBreadCrumbs.Where(x => x.ProjectID == myEntities.tbBreadCrumbs.Max(b=>b.ProjectId)) select new { Status = tbBreadCrumb.BreadCrumbID, }); }
请尝试以下查询
var currentStatus = from x in myEntities.tbBreadCrumbs where x.ProjectID == 49 orderby x.BreadCrumbID desc select x.BreadCrumbID;
该查询的第一个结果将是最高的BreadCrumbID
值,其中ProjectID
为49
此查询应该为您提供最高的BreadCrumbId,其中ProjectID = 4
using (dbPSREntities5 myEntities = new dbPSREntities5()) { var highestId = myEntities.tbBreadCrumbs.Where(x => x.ProjectID == 49) .Max(x => x.BreadCrumbID); }
您可以使用Max()
linq扩展方法
var crum = myEntities.tbBreadCrumbs.Max(d=>d.breadcrumbId)
Var highestId = myEntities.breadcrumbs.lastOrDefault(x => x.ProjectId == 49)
试试这个,如果ProjectID = 49中没有BreadCrumb则给出0或者给出最大BreadCrumbID
using (dbPSREntities5 myEntities = new dbPSREntities5()) { var query=myEntities.tbBreadCrumbs.Where(x => x.ProjectID == 49); var highestId = query.Any() ? query.Max(x => x.BreadCrumbID) : 0; }