title: Linq Left Join returns repeated same rows for all set
body: <p>my linq returns all repeated same rows for all set</p>
  
  <p>run SQL in DB :</p>
  
  <pre><code>select top 20 * from t1
  left join t2
  on t1.sid= t2.sid
   and t1.pid=t2.pid
  where(t2.sid is null and t1.pid='r')
  </code></pre>
  
  <p>i can get 20 different rows of result.</p>
  
  <p>then i write Linq:</p>
  
  <pre><code>    Entities dbconn = new Entities();
      List&lt;t1&gt; myResult = (
          from t1Data in dbconn.t1
          join t2Data in dbconn.t2
          on new     { sid = (int)t1.sid,    pid= t1.pid}
          equals new { sid= (int)t2.sid, pid= t2.pid}
          into joinSet
          from joinUnit in joinSet.DefaultIfEmpty()
          where (joinUnit == null) &amp;&amp; (t1.pid== "r")
          select t1Data 
          ).Take(20).ToList();
  </code></pre>
  
  <p>all rows of result are the some row.</p>