私が進めているプロジェクトでは、4つのエンティティ(他の多数のメンバーの中に)、WorkOrder、Crew、CrewAssignment、Contractorがあります。Fluent nHibernateのHasManyマッピングで追加のフィルタリングはどのようにして行いますか?
- A WorkOrderはは
- Aクルーしか1請負
- A CrewAssignmentを持っているを変更することができる1件の請負業者は、唯一これまで1クルー
- A WorkOrderはは多くのCrewAssignmentsを持っていました:彼らの関係は、このようなものです
問題は、WorkOrderが複数のCrewAssignmentsを持つことができる最後の部分を設定していることです。私がしたいことは、WorkOrder.CrewAssignmentsプロパティが、WorkOrderと同じContractorを持つCrewを持つCrewAssignmentsだけを返すことです。または、「workOrder.Contractor == CrewAssignment.Crew.Contractor」という単語が少ない。
私が思いついた唯一のことはこれですが、x変数が定義されていないという例外がスローされます。
HasMany(x => x.CrewAssignments).KeyColumn("WorkOrderID").Where(x => x.Crew.Contractor == x.WorkOrder.Contractor);
これも同様ですか?それとも、間違った木を完全に吠えているのですか? Googleはこれで午前中に私に失敗している。何か案は?それはあなたを助けるが、ここでの私のテイクであることができれば、私は知らない
私は別の投稿でそれについて読んでいましたが、どのようにしてCrewAssignment.Crew.ContractorIDとWorkOrder.ContractorIDが一致するかわかりません。そこに乗組員が組み込まれているようには見えません。 – rossisdead
FluNameConfiguration.BuildSessionFactoryが呼び出されたときに、WithName引数で何を使用していても、 "Duplicated filter-def name"例外が発生します。 – rossisdead
私は答えを変更しました。フィルタのWithConditionメソッド呼び出しとパラメータとしてのCrew.ContractorIdを見てください。例外についてはわからない。フィルタは同じ名前で2回定義されたようです。 –