Ошибка запроса Nhibernate с множественным объединением - PullRequest
0 голосов
/ 03 декабря 2011

У меня запрос на nhibernate:

var query = Session.QueryOver<Immobile>()
                                .WhereRestrictionOn(i => i.Agenzia.CodiceAgenzia).IsLike(codiceAgenzia)
                                .WhereRestrictionOn(i => i.StatoImmobile.StatoImmobileId).IsLike(statoId)
                                .And(i => i.Prezzo <= prezzo)
                                .And(i => i.Mq <= metriquadri);

Код компилируется, но при выполнении я получаю это исключение:

could not resolve property: Agenzia.CodiceAgenzia of: Domain.Model.Immobile

Что я делаю не так?

1 Ответ

1 голос
/ 03 декабря 2011

Синтаксис QueryOver не работает таким образом, к сожалению, для объектов со ссылками сначала нужно присоединиться к ним, а затем добавить ограничение.

Измените код следующим образом:

Azengia azengiaAlias=null;   //Azengia here is typeof(Immobile.Azengia) I am assuming it is Azengia
StatoImmobile statoImmobileAlias=null;  //similarly StatoImmobile is assumed to be typeof(Immobile.StatoImmobile)
var query=Session.QueryOver<Immobile>()
.Where(i => i.Prezzo <= prezzo && i.Mq <= metriquadri)
.Inner.JoinAlias(x=>x.Agenzia,()=>azengiaAlias)
.Inner.JoinAlias(x=>x.StatoImmobile,()=.statoImmobileAlias)
.WhereRestrictionOn(() => azengiaAlias.CodiceAgenzia).IsLike(codiceAgenzia)
.WhereRestrictionOn(() => statoImmobileAlias.StatoImmobileId).IsLike(statoId);

Надеюсь, это поможет.

...