Как сделать левое внешнее соединение в EF Core v3 - PullRequest
1 голос
/ 21 февраля 2020

Я пытался использовать оператор GroupJoin, чтобы выполнить левое внешнее объединение для двух таблиц, чтобы я мог получить список строк в таблице A, у которых нет элементов в таблице B. Однако я продолжаю получать исключение

  Exception found: Processing of the LINQ expression 'DbSet<People>
      .GroupJoin(
          outer: DbSet<RiskGroup>,
          inner: person => (Nullable<int>)person.Id,
          outerKeySelector: risk => risk.AssessorId,
          innerKeySelector: (person, risks) => new {
              person = person,
              risks = risks
                  .DefaultIfEmpty()
           })' by 'NavigationExpandingExpressionVisitor' failed. 

, что, по-видимому, означает, что это невозможно в EF Core v3. Кто-нибудь знает, как обойти эту проблему, или мой LINQ неверен ниже:

    var Ids = destContext.People.GroupJoin(destContext.RiskGroup,
        person => person.Id,
        risk => risk.AssessorId,
        (person, risks) => new { person, risks = risks.DefaultIfEmpty() }).ToList();

Я пытаюсь найти все строки в таблице person, у которых нет строк в таблице RiskGroup.

...