QueryException: не удалось разрешить свойство: BC из: A] - PullRequest
1 голос
/ 09 января 2012

У меня есть запрос, который выглядит примерно так:

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; }
}

Ответы [ 2 ]

0 голосов
/ 09 января 2012

B.C должно быть BAlias.C

0 голосов
/ 09 января 2012

Используйте JoinQueryOver.

Ошибка означает, что вы используете B.C, как если бы это было имя свойства, но это не так. JoinQueryOver позволяет выполнять запрос по свойству свойства.

...