Nhibernate标准错误

时间:2011-09-09 16:31:21

标签: 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>();
        }
    }

抛出错误:

  

无法解决财产:患者:   SolutionConsultants.WebScreening.Entities.Patients.Patient

     

Type.IsGenericParameter为true的类型

任何想法?

2 个答案:

答案 0 :(得分: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))))

答案 1 :(得分:0)

我不知道这是否是您的想法,但可能patient只是您想要用于查询的别名,如果是这种情况,您只需将其包含在{{像这样的方法(未经过测试,我离开了我的电脑):

CreateCriteria

希望它有所帮助!