не удалось разрешить свойство: User.Full_Name of: Harrods.Core.Entities.Teacher

У меня есть этот код ASP.NET MVC3, работающий на Spring и Fluent NHibernate (NHIB 3.1)

У меня эта ошибка:

could not resolve property: User.Full_Name of: Harrods.Core.Entities.Teacher

[QueryException: could not resolve property: User.Full_Name of: Harrods.Core.Entities.Teacher]
NHibernate.Persister.Entity.AbstractPropertyMapping.GetColumns(String propertyName) +104
NHibernate.Persister.Entity.AbstractPropertyMapping.ToColumns(String alias, String propertyName) +57
NHibernate.Persister.Entity.BasicEntityPropertyMapping.ToColumns(String alias, String propertyName) +100
NHibernate.Persister.Entity.AbstractEntityPersister.ToColumns(String alias, String propertyName) +53
NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumns(ICriteria subcriteria, String propertyName) +184
NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetColumnsUsingProjection(ICriteria subcriteria, String propertyName) +134
NHibernate.Criterion.CriterionUtil.GetColumnNamesUsingPropertyName(ICriteriaQuery criteriaQuery, ICriteria criteria, String propertyName) +45
NHibernate.Criterion.CriterionUtil.GetColumnNames(String propertyName, IProjection projection, ICriteriaQuery criteriaQuery, ICriteria criteria, IDictionary`2 enabledFilters) +46
NHibernate.Criterion.InsensitiveLikeExpression.ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary`2 enabledFilters) +101
NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary`2 enabledFilters) +298
NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable persister, CriteriaQueryTranslator translator, ISessionFactoryImplementor factory, ICriteria criteria, String rootEntityName, IDictionary`2 enabledFilters) +447
NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary`2 enabledFilters) +175
NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results) +412
NHibernate.Impl.CriteriaImpl.List(IList results) +80
NHibernate.Impl.CriteriaImpl.List() +104
NHibernate.Criterion.QueryOver`1.List() +96
NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.List() +75

Это код, из-за которого, похоже, исходит проблема:

return session.QueryOver()
                    .Where(x => x.User.Full_Name.IsInsensitiveLike("%" + Search + "%"))
                    .OrderBy(x => x.Id).Asc
                    .Skip((skip - 1) * take)
                    .Take(take)
                    .List();

Мой класс Учителя выглядит так:

[Serializable]
public class Teacher
{

    public virtual User User { get; set; }
}

А мой класс User выглядит примерно так:

public class User : BaseEntity
{

    public virtual string Email { get; set; }
    public virtual string Full_Name { get; set; }
}

Не уверен, в чем проблема. Мне кажется, все в порядке. У кого-нибудь есть идеи, что не так? :)

Не уверен, но они выглядят несколько похоже, но все равно не понимаю, как решить:

NHibernate.QueryException с динамическим компонентом Правильный способ загрузки сущностей по списку Id, когда Id не mapped

РЕДАКТИРОВАТЬ: Пробовал это, но все равно дает ту же ошибку: -

return session.QueryOver()
                    .JoinQueryOver(u => u.User)
                    .Where(x => x.Full_Name.IsInsensitiveLike("%" + FullNameSearchFilter + "%"))
                    .OrderBy(x => x.Id).Asc
                    .Skip((skip - 1) * take)
                    .Take(take)
                    .List();

Также пробовал псевдоним ..:

return session.QueryOver()
                    .JoinAlias(() => ML.User, () => U)
                    .Where(() => U.Full_Name.IsInsensitiveLike("%" + FullNameSearchFilter + "%"))
                    .OrderBy(x => x.Id).Asc
                    .Skip((skip - 1) * take)
                    .Take(take)
                    .List();

Ни то, ни другое не работает!

РЕДАКТИРОВАТЬ 2

коды sql отображаются правильно; Я могу проверить это через свой профиль NHibernate. Но по какой-то причине после загрузки данных появляется сообщение об ошибке и транзакция откатывается. Теперь мне кажется, что это уже не просто запрос?

5
задан Community 23 May 2017 в 10:24
поделиться