title: SQL left outer join to LINQ
body: <p>I have this query in SQL, and I want it to implement it in LINQ
  (Two tables, Caratulas, Interprete with many-to-many relation, Discos)
  SQL:</p>
  
  <pre><code>SELECT
  Caratulas.Color, Caratulas.Forma, Caratulas.Tamano,Caratulas.Tipo
  FROM
  ((Caratulas LEFT OUTER JOIN Discos ON Caratulas.Tipo = Discos.Tipo) 
  LEFT OUTER JOIN Interprete ON Discos.EtiquetaextSoporte = Interprete.EtiquetaextSoporte)
  WHERE  (Interprete.EtiquetaextSoporte = ?)
  </code></pre>
  
  <p>LINQ:</p>
  
  <pre><code>var FillCaratulasDesdeInterprete = caratulas.Rows.Cast&lt;DataRow&gt;()
  .Join(Discos.Rows.Cast&lt;DataRow&gt;().Join(Interprete.Rows.Cast&lt;DataRow&gt;(),
                      rowSV =&gt; rowSV["EtiquetaextSoporte"],
                      rowS =&gt; rowS["EtiquetaextSoporte"],
                      rowSV =&gt; rowSV)
  .Where(x =&gt; x["EtiquetaextSoporte"] == cadenaDesdeInterprete).DefaultIfEmpty(),
                      codV =&gt; codV["Tipo"],
                      codSV =&gt; codSV["Tipo"],
                      codV =&gt; codV)
  .Where(z =&gt; z["Tipo"] == rowSV["Tipo"]).DefaultIfEmpty();
  </code></pre>
  
  <p>cadenaDesdeInterprete: param</p>
  
  <p>but I have an error:</p>
  
  <pre><code> Error type arguments for method
  'System.Linq.Enumerable.Join&lt;TOuter,TInner,TKey,TResult&gt;(System.Collections.Generic.IEnumerable&lt;TOuter&gt;, System.Collections.Generic.IEnumerable &lt;TInner&gt;, System.Func &lt;Touter, TKey&gt;, System.Func &lt;TInner, TKey&gt;, System.Func &lt;Touter, TInner, TResult&gt;) 'they can not be inferred from the use. Try specifying the type arguments explicitly.
  </code></pre>
  
  <p>I thought my errors are "rowSV => rowSV", and "codV => codV"
  Thanks for your help.</p>