У меня есть иерархия объектов, Заказ, Контакт, Адрес:
public class Order {
public virtual Contact BillingContact { get; set; }
}
public class Contact {
public virtual Address Address { get; set; }
}
Я хочу запросить заказ по идентификатору и с нетерпением жду загрузки контакта для выставления счетов вместе с его адресом.
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);
}
Как я могу создать объект критериев, который загрузит дочерний элемент ребенка? Эти сопоставления отношений кажутся правильными?