以下是我正在使用的代碼。對我來說似乎很簡單。但是我在最後一行得到了一個NullReferenceException,即return語句。這裏是堆棧跟蹤:Nhibernate NullReferenceException返回域對象列表
FailedSystem.NullReferenceException: 對象引用不設置爲一個對象的一個 實例。在 NHibernate.Criterion.Junction.ToSqlString(的ICriteria 標準,ICriteriaQuery CriteriaQuery中,IDictionary的 enabledFilters)在 NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable 持留,CriteriaQueryTranslator 翻譯,ISessionFactoryImplementor 工廠,CriteriaImpl標準,字符串 rootEntityName,IDictionary的
2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary
2個 enabledFilters)在 NHibernate.Impl.SessionImpl.List(CriteriaImpl 標準,IList的結果)在 NHibernate.Impl.CriteriaImpl.List(在的IList 結果)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>;
}