Привет, у меня загадочная проблема (для меня, по крайней мере).
Я использую последнюю платформу Entity Framework на NetCore 2
Итак, я создал эти 2 списка следующим образом:
var cYear = await _context.CYear
.Where(c => c.Discriminator == 'C').ToListAsync();
var modCurricula = await _context.ModCurricula
.Where(m => m.ProductionStatus == 1.ToListAsync();
Проходя по коду, я вижу, что списки содержат необходимые данные.
Но мне нужно объединить два списка, используя запрос Linq, чтобы получить нужный мне набор результатов:
var historicalYears = (from mc in modCurricula
join cy in cYear on mc.GroupId equals cy.GroupId
where cy.CYear == 1810
select mc.ModId).ToList();
Однако, когда я делаю это, я получаю список из 20 строк, но каждая строка представляет собой одни и те же данные, например:
20384 | 04722811
20384 | 04722811
20384 | 04722811
// etc...
Итак, я попытался присоединиться к объектам DbSet действительной структуры сущности следующим образом:
var historicalYears = (from mc in _context.ModCurricula
join cy in _context.CYear on mc.GroupId equals cy.GroupId
where cy.CYear == 1810
select mc.ModId).ToList();
И это работает! Я получаю нужные результаты, а не просто список дубликатов.
Есть ли причина, по которой я получаю дубликаты, используя первый запрос Linq?
Спасибо!