简体   繁体   English

通过 LINQ 从实体中获取最后 N 个元素

[英]Get Last N Element From Entity by LINQ

I want to find the last primary id of a table.我想找到表的最后一个主 ID。 Table Name: table1 columns: Id, name, age表名:table1 列:Id、name、age

var id = _db.table1.OrderByDescending(x => x.Id).FirstOrDefault().Id

The above query is causing performance problem when records exceed 100 000 records.当记录超过 100 000 条记录时,上述查询会导致性能问题。 How to improve the performance?如何提高性能?

假设 _db.Table1 是可查询的,您可以尝试以下操作:

var id = _db.table1.Max(e => e.Id);

If performance is an issue you could issue a raw query against the database:如果性能是一个问题,您可以对数据库发出原始查询:

int id = _db.table1.SqlQuery<int>("SELECT MAX([Id]) FROM dbo.table1").FirstOrDefault<int>();

Entity Framework Raw SQL Queries: https://msdn.microsoft.com/en-us/library/jj592907%28v=vs.113%29.aspx实体框架原始 SQL 查询: https : //msdn.microsoft.com/en-us/library/jj592907%28v=vs.113%29.aspx

It doesn't get any faster than this as far as the selection of data is concerned.就数据的选择而言,没有比这更快的了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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