Nhibernate准则错误

Nhibernate准则错误,nhibernate,Nhibernate,此代码 public IList<Patient> GetByMRNNameDOB(Patient patient) { using (ISession session = SessionManager.Current.OpenSession()) { ICriteria criteria = session.CreateCriteria(typeof (Patient))

此代码

        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>();
        }
    }
公共IList GetBymRNAMEDOB(患者)
{
使用(ISession session=SessionManager.Current.OpenSession())
{
ICriteria标准=session.CreateCriteria(患者类型))
.Add(表达式.析取()
.Add(Expression.Eq(“patient.MedicalRecordNumber”,patient.MedicalRecordNumber))
.Add(表达式.连接词()
.Add(Expression.Eq(“patient.FirstName”,patient.FirstName))
.Add(Expression.Eq(“patient.LastName”,patient.LastName))
.Add(Expression.Eq(“patient.birth”,patient.birth)));
返回条件。List();
}
}
抛出一个错误:

无法解析属性:患者的: SolutionConsultants.WebScreening.Entities.Patients.Patient

Type.IsGenericParameter为true的类型


有什么想法吗?

我不知道这是否是您的想法,但可能
患者
只是您希望用于查询的别名,如果是这种情况,您可以简单地将其包含在
CreateCriteria
方法中,就像这样(未测试,我远离我的计算机):

希望有帮助

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))))
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))))