我有以下实体:
Patient: PatientId, Name, //etc ...
Doctor: DoctorId, Name, //etc...
MedicalConsultation: MedicalConsultationId, Patient, Doctor //(Patient is of type Patient and Doctor is of type Doctor).
和相应的表,其中MedicalConsultations表有一个DoctorId和PatientId作为外键。
在NHibernate中我需要做类似以下的事情:
restrictions.Add(NHibernate.Criterion.Expression.Like("Doctor.Name", "%" + PartOfDoctorName + "%"));
其中限制是具有不同限制的IList。
当我运行此代码时,它会返回MedicalConsultation没有Doctor.Name属性。
我需要以某种方式压扁属性:医生 - > Doctor.Name并将这样的ICriterion添加到我的限制列表中。
谢谢, Tamash
答案 0 :(得分:0)
我用第二个别名列表
解决了这个问题HashSet<string> aliases = new HashSet<string>();
restrictions.Add(Expression.Like("Doctor.Name", PartOfDoctorName, Matchmode.EveryWhere));
aliases.Add(Doctor);
...
foreach(string alias in aliases)
criteria.CreateAlias(alias, alias);
// add restrictions