Синтаксис следующий, и дайте мне знать, если у вас возникли проблемы с переводом кода.Общее внешнее объединение (групповое объединение):
var query = от l слева
join r in right
on l.ID
equals l.right.ID into groupedJoin
select new
{
ID= l.ID,
OuterJoined= groupedJoin.Select(r=> right)
};
Ваш результат - все слева, даже если право не существует.
Очевидно, я не могу гарантировать, что он скомпилируется, но это будет выглядеть так:
var surgeonList = (
from item in context.T1_STM_Surgeon
.Include("T1_STM_SurgeonTitle")
.Include("OTER")
where item.ID == surgeonId
join reptable in context.OSLP
on item.Rep equals reptable.SlpCode into groupedJoin
select new
{
ID = item.ID,
First = item.First,
Last = item.Last,
Rep = reptable.SlpName,
Reg = item.OTER.descript,
PrimClinic = item.T1_STM_ClinicalCenter.Name,
Titles = item.T1_STM_SurgeonTitle,
Phone = item.Phone,
Email = item.Email,
Address1 = item.Address1,
Address2 = item.Address2,
City = item.City,
State = item.State,
Zip = item.Zip,
Comments = item.Comments,
Active = item.Active,
DateEntered = item.DateEntered
OSLP = groupedJoin.Select(x=>WHATEVERYOUNEED)
}).ToList();
И вам просто нужно заменить groupedJoin.Select(x => WHATEVERYOUNEED) либо с выбором чего-либо, либо с простым .ToList