0

我有以下实体:

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 -> Doctor.Name 并将这样的 ICriterion 添加到我的限制列表中。

谢谢, 塔玛什

4

1 回答 1

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
于 2012-04-26T10:47:00.900 回答