【问题标题】:Nhibernate NullReferenceException returning List of domain objectsNhibernate NullReferenceException 返回域对象列表
【发布时间】:2009-09-11 07:10:25
【问题描述】:

以下是我正在使用的代码。对我来说似乎很简单。但是我在最后一行,即 return 语句中得到了 NullReferenceException。这是堆栈跟踪:

FailedSystem.NullReferenceException: 对象引用未设置为 对象的实例。在 NHibernate.Criterion.Junction.ToSqlString(ICriteria 标准,ICriteriaQuery 条件查询,IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary2 启用过滤器)在 NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor(IOuterJoinLoadable 坚持者,CriteriaQueryTranslator 翻译器,ISessionFactoryImplementor 工厂,CriteriaImpl 标准,字符串 rootEntityName, IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary2 启用过滤器)在 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>;

        }

【问题讨论】:

    标签: nhibernate nullreferenceexception icriteria


    【解决方案1】:

    线索在您的堆栈跟踪中。

    只有在您的 return 语句中,才会评估条件以生成 SQL 语句。

    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) 
    

    注释掉您的所有标准,然后以小组的形式重新介绍它们,直到找到导致问题的标准。

    您很可能引用了不存在或未映射的属性,或者为不支持它的条件提供了 null。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      相关资源
      最近更新 更多