C# 如何在ASP.NET核心Web API中使用LINQ仅从数据库获取最新id?

C# 如何在ASP.NET核心Web API中使用LINQ仅从数据库获取最新id?,c#,asp.net-mvc,linq,asp.net-core,asp.net-web-api,C#,Asp.net Mvc,Linq,Asp.net Core,Asp.net Web Api,我是LINQ的新手,我正在尝试使用LINQ从数据库中获取StName Jerry的唯一Id,但我做不到 [HttpGet] 公共IEnumerable GetStudentId { var id=\u context.StudentModel.OrderBya=>a.id.ToList; returnid; } 但是我得到了所有的数据。我想获取最新录制的id only id。更改方法以返回与您的id相同的类型,然后仅获取集合的第一项并返回其属性id 应该是这样 Id | StName | Sub

我是LINQ的新手,我正在尝试使用LINQ从数据库中获取StName Jerry的唯一Id,但我做不到

[HttpGet] 公共IEnumerable GetStudentId { var id=\u context.StudentModel.OrderBya=>a.id.ToList; returnid; }
但是我得到了所有的数据。我想获取最新录制的id only id。

更改方法以返回与您的id相同的类型,然后仅获取集合的第一项并返回其属性id

应该是这样

Id | StName | Subject  | 
 1 |  Tom   |  Math    |
 2 |  Jerry |  Science |

将方法更改为返回和Id相同的类型,然后只获取集合的第一项并返回其属性Id

应该是这样

Id | StName | Subject  | 
 1 |  Tom   |  Math    |
 2 |  Jerry |  Science |

现在,您将获得数据库表中所有记录的列表。当按Id降序排列时,您只需要第一个

注意,只有当您的Id是连续的,并且保证最新记录始终具有最高的Id值时,这才有效

稍后,如果您的表没有记录,您可能希望首先交换到FirstOrDefault


方法签名已更改为仅返回int而不是整个列表。

现在,您将获得数据库表中所有记录的列表。当按Id降序排列时,您只需要第一个

注意,只有当您的Id是连续的,并且保证最新记录始终具有最高的Id值时,这才有效

稍后,如果您的表没有记录,您可能希望首先交换到FirstOrDefault


方法签名已更改为仅返回int而不是整个列表。

您可以尝试下面的代码

[HttpGet] 公共int GetStudentId { var id=\u context.StudentModel.OrderByDescendinga=>a.id.FirstOrDefault; 返回id.id; } 你也可以这样写:

[HttpGet] 公共int GetStudentId { var id=\u context.StudentModel.Maxa=>a.id.FirstOrDefault; 返回id.id; }
注意:您必须做的事情是,需要过滤数据库实体的max或top条目,然后返回它。我也这样做了。

您可以尝试下面的代码

[HttpGet] 公共int GetStudentId { var id=\u context.StudentModel.OrderByDescendinga=>a.id.FirstOrDefault; 返回id.id; } 你也可以这样写:

[HttpGet] 公共int GetStudentId { var id=\u context.StudentModel.Maxa=>a.id.FirstOrDefault; 返回id.id; }
注意:您必须做的事情是,需要过滤数据库实体的max或top条目,然后返回它。我也这么做了。

我只想得到新录制的id,它只会给你一个id。看一看,让我知道,如果工作如预期。我想得到新记录的id只田园诗它会返回给你一个id只。查看并让我知道这是否按预期工作。public IEnumerable GetStudentId当我使用它时,我在returnid.Id中得到错误,错误:无法隐式地将int类型转换为System.Collections.Generic虽然您不需要返回IEnumerable,但更新了答案您想要一个Id,对吗,我只需要一个新记录的id,当我使用public int GetStudentId{var id=\u context.StudentModel.orderbydenderinga=>a.id.FirstOrDefault;return id.id;}是时,您的代码就可以了!!你的代码也是一样的。那么如果我只想返回字符串数据而不是Id呢?StName=Tom public IEnumerable GetStudentId当我使用它时,我在returnid.Id中得到错误,错误:无法隐式地将type int转换为System.Collections.Generic………更新了答案,尽管您不需要返回IEnumerable,但您想要一个Id,对吗?是的,我只需要一个Id,新记录的Id,当我使用public int GetStudentId{var id=\u context.StudentModel.orderbydenderinga=>a.id.FirstOrDefault;return id.id;}是时,您的代码很好!!你的代码也是一样的。那么如果我只想返回字符串数据而不是Id呢?StName=Tom
[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;
}