繁体   English   中英

如何在 ASP.NET Core Web API 中使用 LINQ 仅从数据库获取最新 ID?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM