0

Today I am facing a problem of finding the most efficient query to database using Linq To Sql.

I want to get the element from db.ElementsCollection that has lowest element.SomeNumber value.

I simply managed to do it by following query:

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

Is there any more efficient query to accomplish this task?

4

3 に答える 3

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クエリ内に変換する必要があります。

于 2013-04-12T14:53:22.950 に答える
1

それはあなたが望むものではありませんか:

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