関連するプロパティ(DateTime) と(String) およびその他の値を持つMeasurementオブジェクトがあります。CreationTimeReference
DbContextそのための効率的なlinqクエリを書きたいと思います
- 与えられたグループで
Measurementオブジェクトをグループ化Reference CreationTimeグループの最初のプロパティまたはプロパティMeasurementの平均のいずれかでグループを並べ替えますCreationTime- クエリを最新のものに制限する
numOfEntries
(後のステップで、これらの返されたグループの平均値を計算しますが、それは私の問題には関係ないと思います。)
DbContext 自体には、すべてのオブジェクトを保持するDbSet<Measurement>呼び出しがあります。MeasurementsMeasurement
次のクエリを思いつきました。これにより、正しく順序付けされているが、間にいくつかのグループが欠落しているグループのリストが得られます。
var groupByReference = (from m in context.Measurements
orderby m.CreationTime
group m by new { m.Reference } into g
select g).Take(numOfEntries).ToList();
の「最新」のグループをMeasurement正しく選択するにはどうすればよいですか?
MySQL データベース (MySql Connector/Net 6.6.4) で Entity Framework 4.4 を使用しています。この例は簡略化されています。必要に応じて、より詳細に説明したり、例を示したりできます。
ありがとう!