我正在学习带有实体框架的ASP.Net MVC。我想获取上次保存的记录的id。我已经检查过了,当你想获得你最近保存的记录的id时,接受的答案很好。我需要可能早两天保存的记录。
我该如何检索?
您想要降序排序,然后获取第一条记录。
如果你想要记录,那么这个:
Person person = db.PersonTable.OrderByDescending(p => p.Id).First();
int personId = person.Id;
或者,您可以选择id,如下所示:
int personId = db.PersonTable.OrderByDescending(p => p.Id).First().Id;
这样,但您将失去一些性能
db.YourTable.OrderBy(x => x.Id).ToList().Last();
我假设您使用的是实体框架。
_context.Users.OrderByDescending(user => user.Id).First();
您可以尝试像这样使用Max():
db.SaveChanges();
int id = db.table.Max(i => i.myId);
我建议您,如果您想查找专门基于日期的记录,请将另一列添加到有问题的实体中。
例如,如果您的实体是"订单项",我会有
public class OrderItem
{
public int Id { get; set; }
public DateTime CreatedDateTime { get; set; }
}
然后我会写我的LINQ声明。。。。
var latestOrderItem = db.OrderItem.OrderByDescending(orderItem => orderItem.CreatedDateTime).First();
这应该会给我最新添加的项目。
var latestId = latestOrderItem.Id;