FluentNHibernate を介してマッピングされた次のドメインがあります
class Point
{
public int Id { get; set; }
public string Label { get; set; }
}
class PointData
{
public int Id { get; set; }
public DateTime Hour { get; set; }
public decimal Value { get; set; }
public Point Location { get; set; }
public DateTime Available { get; set; } // Data arrival (data tracking)
}
PointData テーブルは、Hour の新しい値を挿入して頻繁に更新されますが (更新はサポートされていません)、すべてのポイントが同じ頻度で PointData を書き込むわけではありません。
startTime と endTime の間、および timeOfSnapshot(available) より前のすべての時間について、Point ごとに最新の PointData を取得する必要があります。
これまでのところ、Linq を使用して group by を使用して Nhibernate を使用したクエリは機能しません。
Query.Where(x => x.Available <= available && x.Hour >= startHour && x.Hour < endHour)
.OrderByDescending(x => x.Available)
.GroupBy(x => new {x.Location, x.Hour})
.Select(g => g.First())
.ToList();
これまでのすべての検索では SQL クエリしか出てきませんでしたが、これはまさに私が望んでいるものではありません。
助けが必要です