title: Multiple table join with multiple table where clause
body: <p>I have a query that's something like this. </p>
  
  <pre><code>Select a.*
  from table1 a
  inner join table2 b on a.field1 = b.field1
  inner join table3 c on b.field2 = c.field2
  where b.field4 = beta and c.field5 = gamma.
  </code></pre>
  
  <p>On LINQ, I tried to do that this way:</p>
  
  <pre><code>var query = (from a in table1
               join b in table2 on a["field1"] equals b["field1"]
               join c in table3 on b["field2"] equals c["field2"]
               where (b["field4"] == beta &amp;&amp; c["field5"] == gamma)
               select a).ToList();
  </code></pre>
  
  <p>But for some reason, when I try to do this I get an error that says that the entity "table2" doesn't have the field Name = "field5", as though as the where clause was all about the last joined table and the other ones were unaccessible. Furthermore, the compiler doesn't seem to notice neither, because it lets me write c["field5"] == gamma with no warning.</p>
  
  <p>Any ideas? Am I writing this wrong?</p>
  
  <p>Thanks</p>