私は春と流暢NHibernateは(NHIB 3.1)を搭載しています。このASP.NET MVC3コードを持っては、プロパティを解決できませんでした:のUser.Full_Name:Harrods.Core.Entities.Teacher
私はこのエラーがあります:
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
この問題がから来ているように見えるということですコード:
: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>();
私の先生のクラスは次のようになります
[Serializable]
public class Teacher
{
public virtual User User { get; set; }
}
そして、私のUserクラスは次のようなものになります。問題を与えているもの
public class User : BaseEntity<User>
{
public virtual string Email { get; set; }
public virtual string Full_Name { get; set; }
}
わからないが。すべて私には大丈夫です。誰でも何が間違っている? :)
わからないが、彼らはやや似てますが、本当にとにかく解決する方法を理解していない:
NHibernate.QueryException with dynamic-component A correct way to load entities by Id list when Id is not mapped
EDIT: はこれを試みたが、まだ同じエラーを与えます: -
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>();
しようとしましたエイリアスだけでなく..:
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>();
どちらの作業!
EDIT 2
SQLコードが正しく示されています。 NHibernate Profilerでこれを確認できます。しかし、データがロードされた後、何らかの理由で、それはエラーをポップし、トランザクションはロールバックされます。今では、これはちょうどqueryoverについてもはやであるように私には思いませんか?
これは私が試したものですが、働いていないリットル、私は何か間違ったことを書いたなら、私を修正しません。.. :) リターンsession.QueryOver() .JoinQueryOver (U => u.User).Where(X => x.Full_Name.IsInsensitiveLike(」 %」+ FullNameSearchFilter + "%")) .OrderBy(X => x.Id).ASC .SKIP((スキップ - 1)*テイク)を 。テイク(テイク) .List (); –
RicL
いずれの方法も機能しません。 ://JoinQueryOverとJoinAliasの両方が同じ正確なエラーを返します。 – RicL
'Full_Name'は' User'のマッピングされた列ですか?また、「MasterLicensee」とは何ですか? 'MasterLicensee'の代わりに' Teachers'のリストを返すべきではありませんか? –