سؤال

وبعد هو رمز أستخدمه. يبدو بسيطا جدا بالنسبة لي. ولكن يمكنني الحصول على NullReferenceException في السطر الأخير، عبارة الإرجاع. هنا هو تتبع المكدس:

<اقتباس فقرة>   

وFailedSystem.NullReferenceException:   مرجع كائن لم يتم تعيين ل   مثيل كائن. في   NHibernate.Criterion.Junction.ToSqlString (ICriteria   المعايير، ICriteriaQuery   criteriaQuery، IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetWhereCondition(IDictionary2   enabledFilters) في   NHibernate.Loader.Criteria.CriteriaJoinWalker..ctor (IOuterJoinLoadable   persister، CriteriaQueryTranslator   الترجمة، ISessionFactoryImplementor   مصنع ومعايير CriteriaImpl، سلسلة   rootEntityName، IDictionary2 enabledFilters) at NHibernate.Loader.Criteria.CriteriaLoader..ctor(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria, String rootEntityName, IDictionary2   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>;

        }
هل كانت مفيدة؟

المحلول

وعلى فكرة هي في تتبع المكدس الخاص بك.

وانها فقط في بيان عودتك أن المعايير يتم تقييم إلى إصدار بيان 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) 

وتعليق الخروج عن المعايير الخاصة بك وإعادة تقديم لهم في مجموعات صغيرة حتى تجد واحدة وهذا ما يسبب المشكلة.

وعلى الأرجح أنك الرجوع إلى الممتلكات التي؛ أليس وجود لها، أو لم يتم تعيينها، أو توفير فارغة إلى المعايير التي لا يعتمد عليه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top