以下のクラスがあります。IListプロパティのサブプロパティを持つNHibernate QueryOverエンティティ
public class Customer{
....
....
IList<Receipt> Receipts { get; set; }
}
public class Receipt{
....
IList<SoldProduct> Products { get; set; }
}
私の問題は、特定の製品を購入した顧客に質問しようとしていることです。次のコードを実行しようとすると、NullReferenceExceptionが発生します。
Customer c = null;
Receipt r = null;
SoldProduct sP = null;
var queryOver = Session.QueryOver(() => c)
.JoinAlias(() => c.Receipts,() => r)
.JoinAlias(() => r.SoldProducts,() => sP)
.Where(() => c.Name.IsLike(query.Search, MatchMode.Anywhere) ||
c.Surname.IsLike(query.Search, MatchMode.Anywhere) ||
c.Address.IsLike(query.Search, MatchMode.Anywhere) ||
c.Receipts.Select(receipt =>
receipt.SoldProducts.Select(product => product.Product.OldId.ToString()))
.SingleOrDefault().Single().IsLike(query.Search, MatchMode.Anywhere))
私はちょうど今止まっています。もし私が知っていれば私はここのような重要なポイントを見逃しているかもしれません。実際にこのクエリを実行する簡単な方法があれば、私は本当に助けに感謝します。製品の別名にフィルタを適用する
で問題が解決しない、あなたの答えをありがとうございました。 –