我想檢索一個根集合及其子集,在子集合上應用日期篩選器。流利的NHibernate篩選子集合Linq
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));
這可以在不使用Magic Strings(NHb標準,HQL等)的情況下實現,這可以通過簡單的Linq查詢來實現嗎?
如果可以接受的話,可以使用QueryOver完成。 – Phill