Linq Join on Lists создает список дублирующихся данных - PullRequest
0 голосов
/ 11 апреля 2019

Привет, у меня загадочная проблема (для меня, по крайней мере).

Я использую последнюю платформу 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?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...