linq - 外部結合

var tl = Titles
  .GroupJoin(Publishers,
    t => t.Pub_id, p => p.Pub_id,
    (t, g) => new {temp1 = t, temp2 = g})
  .SelectMany(o => o.temp2.DefaultIfEmpty(),
    (x, p2) => new
    {
      title_id = x.temp1.Title_id,
      title_name = x.temp1.Title,
      price = x.temp1.Price,
      pub_name = (p2 != null ? p2.Pub_name : null)
    });
    
tl.Dump();