0

今天我面临一个问题,即使用 Linq To Sql 查找对数据库的最有效查询。

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

我只是通过以下查询设法做到了:

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

有没有更有效的查询来完成这项任务?

4

3 回答 3

1

这不就是你想要的吗:

var maxNumber=db.ElementsCollection.OrderByDescending(o=>o.SomeNumber).First();
于 2013-04-12T14:51:54.153 回答
1

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

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

或者您可以使用morelinq

var query = db.ElementsCollection
              .MaxBy(o => o.SomeNumber);
于 2013-04-12T14:53:22.503 回答
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();

它应该TOP(1)在 SQL Query 中翻译。

于 2013-04-12T14:53:22.950 回答