[英]How to get latest id only from database using LINQ in ASP.NET Core Web API?
Id | StName | Subject |
1 | Tom | Math |
2 | Jerry | Science |
我是 LINQ 的新手,我试图使用 LINQ 从数据库中仅获取StName
Jerry 的Id
,但我不能。
[HttpGet]
public IEnumerable<StudentModel> GetStudentId()
{
var id = _context.StudentModel.OrderBy(a => a.Id).ToList();
return(id);
}
但我得到了所有的数据。 我想获取最新记录的 id(仅 id)。
现在,您将获得数据库表中所有记录的列表。 当按 Id降序排序时,您只需要第一个。
[HttpGet]
public int GetStudentId()
{
var latestStudentRecord = _context.StudentModel
.OrderByDescending(a => a.Id)
.First();
// return only the Id property of the latest record
return latestStudentRecord.Id;
}
请注意,这仅在您的 Id 是连续的时才有效,并且可以保证“最新”记录始终具有最高的 Id 值。
稍后,您可能希望将First()
交换为FirstOrDefault()
,以防您的表没有记录。
方法签名已更改为仅返回一个 int 而不是整个列表。
你可以试试下面的代码。
[HttpGet]
public int GetStudentId()
{
var id = _context.StudentModel.OrderByDescending(a => a.Id).FirstOrDefault();
return id.Id;
}
你也可以写一些如下:
[HttpGet]
public int GetStudentId()
{
var id = _context.StudentModel.Max(a => a.Id).FirstOrDefault();
return id.Id;
}
注意:您要做的事情是,需要过滤数据库实体的 max 或 top 条目,然后将其返回。 我也这样做了。
更改方法以返回与您的 Id 相同的类型,然后仅获取集合的第一项并返回其属性 Id。
情况应该是这样。
public int GetStudentId()
{
var student = _context.StudentModel.OrderBy(a => a.Id).FirstOrDefault();
return student.Id;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.