В проекте, над которым я работаю, у меня есть четыре объекта (среди множества других): WorkOrder, Crew, CrewAssignment и Contractor. Их отношения такие:
- WorkOrder имеет одного подрядчика, которого можно изменить
- Экипаж имеет только одного подрядчика
- Присвоение экипажу имеет только одну команду
- WorkOrder имеет много присвоений Crew
У меня проблема с настройкой последней части, в которой WorkOrder может иметь несколько CrewAssignments. Что я хочу сделать, так это убедиться, что свойство WorkOrder.CrewAssignments возвращает только те CrewAssignments, которые имеют Crew с тем же подрядчиком, что и WorkOrder. Или, менее многословно, "где WorkOrder.Contractor == CrewAssignment.Crew.Contractor".
Единственное, что я смог придумать, это это, но он выдает исключение из-за неопределенности переменной x.
HasMany(x => x.CrewAssignments).KeyColumn("WorkOrderID").Where(x => x.Crew.Contractor == x.WorkOrder.Contractor);
Возможно ли сделать что-то подобное? Или я полностью не лаю? Google провалил меня все утро с этим. Есть идеи?