tengo este código ASP.NET MVC3 que está accionado por resorte y Fluent NHibernate (NHib 3,1)no pudo resolver la propiedad: User.Full_Name de: Harrods.Core.Entities.Teacher
tengo este error:
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<TRoot>.List() +75
este es el código que el problema parece venir de:
return session.QueryOver<Teacher>()
.Where(x => x.User.Full_Name.IsInsensitiveLike("%" + Search + "%"))
.OrderBy(x => x.Id).Asc
.Skip((skip - 1) * take)
.Take(take)
.List<Teacher>();
Mi clase Maestro tiene el siguiente aspecto:
[Serializable]
public class Teacher
{
public virtual User User { get; set; }
}
Y mi clase de usuario se ve algo como esto:
public class User : BaseEntity<User>
{
public virtual string Email { get; set; }
public virtual string Full_Name { get; set; }
}
No está seguro de lo que está dando el problema. Todo se ve bien para mí. ¿Alguien tiene alguna idea de lo que está mal? :)
No estoy seguro pero tienen un aspecto algo similar, pero realmente no entienden cómo resolver todos modos:
NHibernate.QueryException with dynamic-component A correct way to load entities by Id list when Id is not mapped
EDIT: probado esto, pero que todavía da el mismo error : -
return session.QueryOver<Teacher>()
.JoinQueryOver<User>(u => u.User)
.Where(x => x.Full_Name.IsInsensitiveLike("%" + FullNameSearchFilter + "%"))
.OrderBy(x => x.Id).Asc
.Skip((skip - 1) * take)
.Take(take)
.List<Teacher>();
alias juzgado como bueno ..:
return session.QueryOver<Teacher>()
.JoinAlias(() => ML.User,() => U)
.Where(() => U.Full_Name.IsInsensitiveLike("%" + FullNameSearchFilter + "%"))
.OrderBy(x => x.Id).Asc
.Skip((skip - 1) * take)
.Take(take)
.List<Teacher>();
Ni trabajando!
EDITAR 2
los códigos SQL es que se mostraron correctamente; Puedo verificar esto a través de mi NHibernate Profiler. Pero por alguna razón, una vez que se cargan los datos, aparece el error y la transacción se revierte. ¿Ahora me parece que esto ya no es solo cuestión de consultas?
Esto es lo que probé, pero todavía l no está trabajando, no me corrija si escribía algo mal .. :) retorno session.QueryOver() .JoinQueryOver (u => u.User) .Where (x => x.Full_Name.IsInsensitiveLike (" % "+ FullNameSearchFilter +"% ")) .OrderBy (x => x.Id) .Asc .Skip ((omisión - 1) * tomar) .Tome (tome) .Lista (); –
RicL
¡Ninguno de los métodos funciona! :/JoinQueryOver y JoinAlias dan el mismo error exacto. – RicL
¿'Full_Name' es una columna mapeada en' User'? Además, ¿qué es 'MasterLicensee'? ¿No deberías devolver una lista de "Maestros" en lugar de "MaestroLicentario"? –