title: int? and int comparison when LEFT OUTER JOIN in Linq issue
body: <p>I am working on a WinForms project which requires to use <code>Linq-To-Sql</code>. I have been able to create my DataContext using the <code>SqlMetal</code> tool, and make some queries. But right now I have a problem that I havent been able to solve.</p>
  
  <p>I am trying to make a <code>LEFT OUTER JOIN</code> as following:</p>
  
  <pre><code>MyDatabase db = new MyDatabase(...);
  
   var query = from p in db.ParentTable
               join t in db.ChildTable on new {A = p.child_ID, B = p.OtherID}
               equals new {A = t.ID, B = t.OtherID} into j1
               from c in j1.DefaultIfEmpty()
               select new
               {
                    ...
               };
  </code></pre>
  
  <p>When I write this query an error is raised at compile-time in the <code>join</code> word:</p>
  
  <blockquote>
    <p>The type of one of the expressions in the join clause is incorrect.  Type inference failed in the call to 'GroupJoin'</p>
  </blockquote>
  
  <p>I know this error is caused by the comparison between <code>p.child_ID</code> and <code>t.ID</code> since <code>p.child_ID</code> is <code>int?</code> and <code>t.ID</code> is <code>int</code>. But, <strong>How can I solve this? How can I perform the <code>LEFT OUTER JOIN</code> without having this error??</strong></p>
  
  <p><code>p.child_ID</code> is <code>int?</code> since this column is marked as <code>IS NULL</code> in <code>SQL</code>.</p>
  
  <p>Hope someone can help me, thanks in advance.</p>