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