Я пытаюсь выполнить запрос, который включает подзапрос, который сам включает группировку.
Я основывал свой код на ответах на этот вопрос
Цель кода - выполнить простое дедупликацию таблицы «человек» на основе адреса электронной почты и вернуть строку с последним человеком.
var innerQuery = (from p in db.Person
join r in db.Registration on p equals r.Person
join e in db.EventDetail on r.EventDetail equals e
where e.Client.ClientID == clientID
group p by p.Email into g
select g.Max(p => p.PersonID));
var query = (from p2 in db.Person where innerQuery.Contains(p2.PersonID) select p2);
При попытке выполнить запрос я получаю следующее сообщение об ошибке:
LINQ to Entities не распознает метод метода «Boolean Contains [Int32] (System.Linq.IQueryable`1 [System.Int32], Int32)», и этот метод нельзя преобразовать в выражение хранилища.
Я протестировал внутренний запрос, и он просто возвращает список целых чисел, как и ожидалось, но запрос не выполняется с указанным выше сообщением.
Любая помощь очень ценится.