title: Linq join on multiple tables with null values
body: <p>I want to perform a request from my database build as this</p>
  
  <pre><code>Table Zipcodes
  string Zipcode
  string Description
  string StateCode
  string RegionCode
  string CountryCode
  
  Table States
  string StateCode
  string StateName
  
  Table Region
  string RegionCode
  string RegionName
  
  Table Country
  string CountryCode
  string CountryName
  </code></pre>
  
  <p>So, i want to list all my Zipcodes with names instead of codes.</p>
  
  <p>My ZIPcode table contains 8 lines.
  in ZIPCode table, only states codes can be Null.</p>
  
  <p>Here is my request :</p>
  
  <pre><code>var dset = from s in db.ZIPCODEs
  join u in db.COUNTRies on s.COUNTRYCODE equals u.COUNTRYCODE
  join v in db.STATES on s.STATECODE equas v.STATECODE 
  join w in db.REGIONS on s.REGIONCODE equals w.REGIONCODE                     
  select new ZIPCODEListViewModel
      {
      ID = s.ID,
      ZIPCODE1 = s.ZIPCODE1,
      DESCRIPTION = s.DESCRIPTION,
      STATECODE = s.STATECODE,
      CONTRYCODE = s.COUNTRYCODE,
      REGIONCODE = s.REGIONCODE,
      STATECODE = s.STATENAME,
      COUNTRYNAME =u.DESCRIPTION,
      STATENAME = v.DESCRIPTION,
      REGIONNAME = w.DESCRIPTION
     };
  </code></pre>
  
  <p>This returns 0 lines.</p>
  
  <p>If i use join only on COUNTRY and REGION, that contains no null values, I receive all the lines.</p>
  
  <p>My question is : How can i build my request to return all the lines, and emply string or null in the Statename is Statecode is null ?</p>
  
  <p>Thanks for your help and sorry for bad english &amp;&amp; bad linq competences.</p>
  
  <p>Robbie</p>