子コレクションに日付フィルターを適用して、ルート集計とその子を取得しようとしています。
CREATE TABLE Shop
(
Id int
)
CREATE TABLE Order
(
ShopId int,
OrderDate datetime
)
当然、子オブジェクトには、双方向参照を避けるための ShopId プロパティがありません。
class Shop
{
int Id { get; set; }
List<Order> { get; set; }
}
class Order
{
DateTime OrderDate { get; set; }
}
FNHB マッピングは次のようになります。
public ShopMap()
{
this.Table("SHOP");
this.Id(x => x.Id).Column("ID");
this.HasMany(x => x.Orders).Table("ORDER").KeyColumn("SHOP_ID");
}
public OrderMap()
{
this.Table("ORDER");
this.Map(x => x.OrderDate);
}
パラメータを指定して、特定の日付の間に配置された注文で特定のショップを取得しようとしていますがshopId, fromDate, toDate
、これを試しましたが、例外がスローされます:
Session.Query<Shop>().Where(shop => shop.Id == shopId)
.FetchMany(
shop => shop.Orders.Where(
order => order .OrderDate >= fromDate && order.OrderDate <= toDate));
これは、マジック ストリング (NHb 基準、HQL など) を使用せずに、できれば単純な Linq クエリを使用して達成できますか?