У меня есть запрос, который выглядит примерно так:
B BAlias = null;
C CAlias = null;
session.QueryOver<A>().Left.JoinAlias(x => x.B, () => BAlias).Left.JoinAlias(() => B.C, () => CAlias);
Query.Where(() => CAlias == C);
Query.And(() => BAlias.Id == Guid.Parse(SearchColumn));
Query.And(x => x.SomeData == data_string);
return Query.OrderBy(() => B.Name).Desc
.Skip(skip)
.Take(take)
.List<A>();
По сути, мне нужно загрузить список объектов A, у которых есть косвенное свойство C, через B. (Надеюсь, это не слишком запутанно)
Я не могу заставить его работать, все время выдают ошибки для такого «под-подзапроса», есть идеи, как это можно кодировать для работы?
EDIT:
Добавлен порядок по запросу.
Ошибка приходит в виде:
не удалось разрешить свойство: B.C из: A
РЕДАКТИРОВАТЬ 2:
Отображения, как показано ниже:
public void Override(AutoMapping<A> mapping)
{
mapping.References<B>(x => x.B).Not.Nullable().Not.LazyLoad();
}
public void Override(AutoMapping<B> mapping)
{
mapping.References(x => x.C).Not.Nullable().Cascade.SaveUpdate();
}
public void Override(AutoMapping<C> mapping)
{
mapping.Map(x => x.Name).CustomSqlType("VARCHAR(255)").Not.Nullable().Unique();
}
public class A: BaseEntity<A>
{
public virtual B B{ get; set; }
public virtual string SomeData{ get; set; }
}
public class B: BaseEntity<B>
{
public virtual C C{ get; set; }
public virtual string Name{ get; set; }
}
public class C: BaseEntity<C>
{
public virtual string Name{ get; set; }
public virtual string Description{ get; set; }
}