2011-09-09 15 views
0

このコードNHibernateの基準エラー

 public IList<Patient> GetByMRNNameDOB(Patient patient) 
    { 
     using (ISession session = SessionManager.Current.OpenSession()) 
     { 
      ICriteria criteria = session.CreateCriteria(typeof (Patient)) 
       .Add(Expression.Disjunction() 
         .Add(Expression.Eq("patient.MedicalRecordNumber", patient.MedicalRecordNumber)) 
         .Add(Expression.Conjunction() 
            .Add(Expression.Eq("patient.FirstName", patient.FirstName)) 
            .Add(Expression.Eq("patient.LastName", patient.LastName)) 
            .Add(Expression.Eq("patient.Birthday", patient.Birthday)))); 

      return criteria.List<Patient>(); 
     } 
    } 

でエラーが発生します:

Could not resolve property: patient of: SolutionConsultants.WebScreening.Entities.Patients.Patient

Type for which Type.IsGenericParameter is true

任意のアイデア?

答えて

2
ICriteria criteria = session.CreateCriteria(typeof (Patient)) 
    .Add(Expression.Disjunction() 
        .Add(Expression.Eq("MedicalRecordNumber", 
             patient.MedicalRecordNumber)) 
        .Add(Expression.Conjunction() 
           .Add(Expression.Eq("FirstName", patient.FirstName)) 
           .Add(Expression.Eq("LastName", patient.LastName)) 
           .Add(Expression.Eq("Birthday", patient.Birthday)))) 
0

これはあなたが念頭に置いたものなのかどうかわかりませんが、おそらくpatientはクエリに使用したい別名です。そのような場合は単純にCreateCriteriaメソッドに含めることができます、私は)自分のコンピュータから離れてるテストされていません:

ICriteria criteria = session.CreateCriteria(typeof(Patient), "patient"); 
... 

はそれが役に立てば幸い!

関連する問題