Nhibernate Nullreferenceexception Rückkehr Liste der Domain-Objekte
-
05-07-2019 - |
Frage
Im Anschluss ist der Code ich verwende. Scheint mir ziemlich einfach. Aber ich erhalte eine Nullreferenceexception in der letzten Zeile, die return-Anweisung. Hier ist der Stack-Trace:
FailedSystem.NullReferenceException: Objektverweis nicht auf eine Set Instanz eines Objekts. beim NHibernate.Criterion.Junction.ToSqlString (ICriteria Kriterien, ICriteriaQuery criteriaQuery, IDictionary
2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary
2 enabledFilters) bei NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor (IOuterJoinLoadable persister, CriteriaQueryTranslator Übersetzer, ISessionFactoryImplementor Fabrik, CriteriaImpl Kriterien, String rootEntityName, IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary
2 enabledFilters) bei NHibernate.Impl.SessionImpl.List (CriteriaImpl Kriterien, die Ergebnisse IList) bei NHibernate.Impl.CriteriaImpl.List (IList Ergebnisse) bei NHibernate.Impl.CriteriaImpl.List ()
public List<Person> Search(string keyword)
{
ICriteria criteria = session.CreateCriteria(typeof (Person));
Disjunction disjunction = Restrictions.Disjunction();
{
// In here, there is a whole lot of business logic adding around 20 conditions to the disjunction
}
criteria.Add(disjunction);
return criteria.List<Person>() as List<Person>;
}
Lösung
Der Schlüssel ist in Ihrem Stack-Trace.
Es ist nur zu Ihrer Rückkehr Aussage, dass die Kriterien ausgewertet werden eine SQL-Anweisung zu erzeugen.
FailedSystem.NullReferenceException:
Object reference not set to an instance of an object.
at NHibernate.Criterion.Junction.ToSqlString(
ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary2 enabledFilters)
at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(
IDictionary2 enabledFilters)
Kommentieren Sie alle Ihre Kriterien und sie in kleinen Gruppen wieder einführen, bis Sie finden, die das Problem verursacht.
Die meisten wahrscheinlich, dass Sie eine Eigenschaft sind Referenzierung, die vorhanden ist does't oder nicht abgebildet, oder eine Null zu einem Kriterium der Voraussetzung, dass es nicht unterstützt.