title: Entity Framework / LINQ: Left join defaultifempty fails
body: <p>I need to join 5 tables in a query. 3 of these tables must have relations, but two of them are optionally connected to an entry.</p>
  
  <p>Because of this, I am trying to do a <code>LEFT JOIN</code> to <code>Table4</code> and <code>Table5</code> like this:</p>
  
  <pre><code>var cDesc = (cDesc == null ? "" : cDesc);
  var cStreet = (cStreet == null ? "" : cStreet);
  
  var q = await (from t1 in MyContext.Table1
  
             join t2 in MyContext.Table2
             on t1.ID equals t2.ObjectID
  
             join t3 in MyContext.Table3
             on t2.TeamID equals t3.TeamID
  
             join t4 in MyContext.Table4
             on t1.ID equals t4.ObjectID
             into join3
  
             from j3 in join3.DefaultIfEmpty()
             join t5 in MyContext.Table5
             on j3.StorageID equals t5.StorageID
  
             where t2.ObjectType.Equals(16)
             &amp;&amp; t3.UserID.Equals(userID)
             &amp;&amp; t1.Description.Contains(cDesc)
             &amp;&amp; l.Address.Contains(cStreet)
  
             orderby t1.ID descending
  
             select new Table1ListModel
             {
                 ID = t1.ID,
                 Description = t1.Description,
                 Address = t5.Address
             }
  
             )
             .Take(takeThis)
             .ToListAsync();
  </code></pre>
  
  <p>But this query only works for rows that has a connection to <code>Table4</code>, so I'm doing something wrong obviously. </p>
  
  <p>Am I doing the join correctly? Or is the problem that I want to run a <code>where</code> on address that comes from the fifth table?</p>