0
選択トップで複数の順序を最適化:EFは、私は、次のEntity Frameworkのクエリを持っている1
var queryResponse = await db.DataPoints.GroupBy(x => x.Device).Select(x => new
{
lon = x.Key.DataPoints.OrderByDescending(y => y.DateTime).Select(y => y.Longitude).FirstOrDefault(),
lat = x.Key.DataPoints.OrderByDescending(y => y.DateTime).Select(y => y.Longitude).FirstOrDefault(),
date = x.Key.DataPoints.OrderByDescending(y => y.DateTime).Select(y => y.DateTime).FirstOrDefault(),
label = x.Key.Name,
})
.OrderByDescending(x => x.label)
.ToListAsync();
今、あなたは私の選択では見ることができ、私はlon
、「緯度」を取得する必要がありますし、「日付」。しかし、私はそれをやっている方法は、私はorderby
し、最初の3回を選択する必要があります。 'DataPoints'は非常に大きなテーブルです。
私は通常、orderBy
を1回実行してオブジェクト全体を選択し、後で3つのプロパティに分割します。しかし、この場合、SQLは正確なフィールドを返すようにします。
このクエリを書くより効果的な方法はありますか?