Linq to SQL - 查找具有最低字段值的元素 - 性能

时间:2013-04-12 14:49:08

标签: performance linq select

今天我遇到了使用Linq To Sql找到最有效的数据库查询的问题。

我想从db.ElementsCollection获取具有最低element.SomeNumber值的元素。

我只是设法通过以下查询来实现:

var query = db.ElementsCollection
   .First(o => o.SomeNumber == (db.ElementsCollection.Max(or => or.SomeNumber)));

是否有更有效的查询来完成此任务?

3 个答案:

答案 0 :(得分:1)

这不是你想要的:

var maxNumber=db.ElementsCollection.OrderByDescending(o=>o.SomeNumber).First();

答案 1 :(得分:1)

您可以在属性OrderByDescending上使用SomeNumber,然后获取第一项:

var query = db.ElementsCollection
              .OrderByDescending(o => o.SomeNumber)
              .First();

或者您可以使用morelinq

var query = db.ElementsCollection
              .MaxBy(o => o.SomeNumber);

答案 2 :(得分:1)

怎么样:

var query = db.ElementsCollection.OrderByDescending(o => o.SomeNumber).First();

或者

var query = (from o in db.ElementsCollection
            order by o.SomeNumber descending
            select o).First();

应该在SQL Query中将其翻译为TOP(1)