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

私は2番目のエイリアスリストでこれを解決しました

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 に答える