Я использую Entity Framework 4 и не могу выполнить запрос.
У меня два объекта:
Компонент инструкции
Между этими объектами существует отношение «многие ко многим». Фургон с инструкциями указывает на один или несколько компонентов. И на компонент можно ссылаться с помощью нескольких инструкций.
Я пытаюсь узнать, сколько инструкций «готово» (status = 6) есть для каждого компонента.
В SQL это просто:
select c.id, COUNT(*)
from Component c
inner join InstructionComponents ic on c.Id = ic.Component_Id
inner join Instructions i on i.Id = ic.Instruction_Id
where i.StatusValue = 6
group by c.id
У меня проблемы с этим в EF. Вот что я пробовал:
var result =
from component in Copmponents
where component.Instructions.Any(s => s.Status == 6)
group component by component.Id
into componentGroup
select new { compId = onderdeelGroup.Key, count = componentGroup.Count() };
Но его запрос не возвращает правильное количество. Не знаю, как считать количество инструкций.