A: 

How about something like the query below? It'll give you an anonymous type consisting of 3 properties. Some will be null when the 'left join' would've produced null.

  var products= 
        from p in db.Products
        from pc 
        in db.ProductCategory
             .Where(x => x.Id == p.ProductCategoryId)
             .DefaultIfEmpty()
        from ps 
        in db.ProductStatus
             .Where(x => x.Id == p.ProductStatusId)
             .DefaultIfEmpty()
        select new { Product = p, ProductCategory = pc, ProductStatus = ps} 
p.campbell
@David, hope this would've helped anyway!
p.campbell
A: 

Found the answer. In the DBML file where I have the tables and the associations. It is related to the foreign key Ids.

If the foreign key is not nullable, then it does an inner join. if you make the field nullable, then it will do a left join.

David Burela