NHibernate在标准上展平属性

时间:2012-04-23 17:38:04

标签: hibernate nhibernate fluent-nhibernate criteria

我有以下实体:

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

1 个答案:

答案 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