Очень новый с LINQ здесь.
У меня есть следующие данные в моей таблице (Таблица A):
ID Name SubmissionNo
1 Jim A-1
2 Andy A-2
3 Rick A-2
4 Mary A-3
5 Zim A-4
6 Loren A-1
Затем мне нужно создать запрос, который позволит мне получить из этой таблицы те записи, которые имеют повторяющиеся номера представления.
Вот мое решение (контекст - это контекст базы данных):
var duplicates = (from tbl in Context.TableA.AsNoTracking()
group tbl by tbl.SubmissionNo into grp
select new { count = grp.Count(), submissionNo = grp.Key})
.Where(x => x.count > 1)
.OrderBy(y => y.submissionNo).ToList();
Переменная дубликатов содержит запись:
count submissionNo
2 A-1
2 A-2
Затем я пишу основной запрос, который позволит мне получить все записи из Таблицы A, в которой есть дублирующая отправка. Нет
var myList = (from tbl in Context.TableA.AsNoTracking()
join dup in duplicates on tbl.SubmissionNo equals dup.submissionNo
select new
{
ID = tbl.ID,
Name = tbl.Name,
SubmissionNo = tbl.SubmissionNo
})
.ToList();
Я получаю сообщение об ошибке для запроса myList с
Невозможно создать постоянное значение типа «Анонимный тип». В этом контексте поддерживаются только примитивные типы или типы перечисления.
Я думаю, что должен быть лучший способ сделать это, как показано в Таблице A выше, мне практически нужны следующие результаты:
ID Name SubmissionNo
1 Jim A-1
2 Andy A-2
3 Rick A-2
6 Loren A-1