views:

56

answers:

3

Hi all,

I have the following query but i have no idea on how to do a left outer join on table 1.

 var query = (from r in table1
                                 join f in table2
                                   on r.ID equals f.ID
                                select new
                                {     
                                    r.ID
                                    , r.FirstName
                                    , r.LastName
                                    , FirstNameOnRecord = (f != null ? f.FirstName : string.Empty)
                                    , LastNameOnRecord = (f != null ? f.LastName : string.Empty)
                                    , NameChanged = (f != null ? (f.FirstName.CompareTo(r.FirstName) == 0 && f.LastName.CompareTo(r.LastName) == 0) : false)
                                }).ToList();

Thanks for any help

+1  A: 

Here is a great breakdown of the left outer join.

Aaron
+1  A: 

Have you seen these examples? You're probably interested in this part about Left Outer Join in Linq.

Onkelborg
+1  A: 

Refer this or this examples to learn more and your case it would be something like this-

var query = from r in table1
            join f in table2
            on r.ID equals f.ID into g
            from f in g.DefaultIfEmpty()
             select new
             {     
                r.ID
                , r.FirstName
                , r.LastName
                , FirstNameOnRecord = (f != null ? f.FirstName : string.Empty)
                , LastNameOnRecord = (f != null ? f.LastName : string.Empty)
                , NameChanged = (f != null ? (f.FirstName.CompareTo(r.FirstName) == 0 
                &&  f.LastName.CompareTo(r.LastName) == 0) : false)
              }).ToList();
Misnomer