Все,
Используя nhibernate 5.x, asp.net 4.6.1
У меня есть следующая ассоциация:
Адрес проекта => Проект => Регион
Я хочу запросить адрес проекта и быстро загрузить проект и регион проекта (а также страну, которая находится в проекте), ... проект загружен, но регион проекта нет!Когда я проверяю в отладчике, Region в проекте является типом прокси.Я пробовал различные запросы без успеха:
var address = session.CreateCriteria<ProjectAddress>()
.Add(Expression.Eq(Projections.Id(), addressId))
.SetFetchMode("Project", NHibernate.FetchMode.Join)
.SetFetchMode("Project.Region", NHibernate.FetchMode.Join)
.SetFetchMode("Project.Country", NHibernate.FetchMode.Join)
.UniqueResult<ProjectAddress>();
и
var address = session.Session.Query<ProjectAddress>()
.Where(x => x.Id == addressId)
.Fetch(x => x.Project)
.ThenFetch(p => p.Region)
.ThenFetch(p => p.Country)
.Single();
Я делал это в других запросах, и это работает, почему это не работает в этом случае, вне меня.Здесь нет ничего особенного в отображении (Project => Region).Мое отображение:
[ManyToOne(Column = "region_id",
ClassType = typeof(Region),
NotNull = false)]
public virtual Region Region
{
get { return _region; }
set { _region = value; }
}