オブジェクト、注文、連絡先、住所の階層があります。
public class Order {
public virtual Contact BillingContact { get; set; }
}
public class Contact {
public virtual Address Address { get; set; }
}
IDで注文を照会し、billingcontactとそのアドレスを熱心にロードしたいと思います。
var criteria = DetachedCriteria.For<Order>()
.SetFetchMode("BillingContact", FetchMode.Eager)
この基準はBillingContactを熱心にロードしますが、当然のことながらBillingContactのアドレスではありません。追加した場合:
.SetFetchMode("BillingContact.Address", FetchMode.Eager)
これは何の助けにもなりません。
また、これらの関係は一方向であることに注意してください。
public OrderMap()
{
References(x => x.BillingContact)
.Not.Nullable()
.Cascade.All();
}
public ContactMap()
{
HasOne(x => x.Address)
.Cascade.All()
.FetchType.Join();
}
public AddressMap()
{
Map(x => x.Address1);
}
子の子をロードする基準オブジェクトを作成するにはどうすればよいですか?これらの関係マッピングは正しいように見えますか?