linq到EF,如何使用'top`方法

Ela*_*nda -1 c# sql linq linq-to-entities entity-framework

我想使用linq to Entities来提供top按降序列排序的记录Value1.

我知道我写的像:

MyCollection.OrderByDescending(item => item.Value1).FirstOrDefault();

但是我该如何使用以下方法Top呢?

System.Data.Objects.ObjectQuery.Top(string,params System.Data.Objects.ObjectParameter [])

Jon*_*eet 5

编辑:这个答案是在问题专门针对LINQ to SQL 时编写的.

System.Data.Objects据我所知,它用于实体框架而不是LINQ to SQL - 但要在LINQ to SQL或LINQ to Objects中找到前N个值,通常只需使用Take:

var query = db.Customers
              .OrderByDescending(c => c.Value1)
              .Take(10);
Run Code Online (Sandbox Code Playgroud)

(我真的鼓励你尝试使用比Value1... 更有意义的名字...)

编辑:即使在实体框架中,我通常Take在LINQ查询中使用- 它是表示前N个结果的"LINQ方式".如果你真的,真的想要使用Top,那么文档提供了一些例子 - 但你应该考虑为什么要使用Top而不是Take.(你没有给我们任何背景.)

  • @EladBenda:Jon向您展示的是LINQ等同于SQL的`top`. (2认同)