EF core левое соединение от дочернего элемента к родительскому

#entity-framework #entity-framework-core

#entity-framework #entity-framework-core

Вопрос:

Можем ли мы левое соединение от дочернего элемента к родительскому?

  var query = Child.Join(Context.Set<Parent>(), r => r.ParentId, u => u.Id,
            (r, u) => new
            {
                Parent= u,
                Child= r
            });
 

Это переводится во внутреннее соединение, но я хочу левое соединение

Возможно ли это?

Ответ №1:

Лучше сделать это с помощью синтаксиса запроса LINQ:

 var query =
    from c in Context.Set<Child>() 
    join p in Context.Set<Parent>() on c.ParentId equals p.Id into gj
    from p in gj.DefaultIfEmpty()
    select new 
    {
        Parent = p,
        Child = c
    };