Click here to Skip to main content
16,013,207 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am using..

C#
var resultingTable1 = from t2 in DB1.AsEnumerable()
                      join t1 in dtresult.AsEnumerable().DefaultIfEmpty()
                      on new 
                      { 
                         LoginID = t2.Field<string>("Login ID"), 
                         reportdate = Convert.ToDateTime(t2.Field<string>("Login time")).Date.ToString() 
                      } 
                      equals new 
                      { 
                         LoginID = t1.Field<string>("LoginID"), 
                         reportdate = t1.Field<DateTime>("ReportDate").Date.ToString() 
                      }

                      select new { t2,t1 };

But getting result as inner join
C#

What I have tried:

C#
var resultingTable1 = from t2 in DB1.AsEnumerable()
                      join t1 in dtresult.AsEnumerable().DefaultIfEmpty()
                      on new { 
                               LoginID = t2.Field<string>("Login ID"), 
                               reportdate = Convert.ToDateTime(t2.Field<string>("Login time")).Date.ToString() 
                             } 
                      equals new { 
                                   LoginID = t1.Field<string>("LoginID"), 
                                   reportdate = t1.Field<DateTime>("ReportDate").Date.ToString() 
                                 }
Posted
Updated 15-Dec-16 0:58am
v3

1 solution

You are actually doing inner join so the result is right in that sense, for outer join you need to do it little different, you will have to to add a from clause as well after join like:

C#
var resultingTable1 = from t2 in DB1.AsEnumerable()
                      join t1 in dtresult.AsEnumerable()
                      on new 
                      { 
                         LoginID = t2.Field<string>("Login ID"), 
                         reportdate = Convert.ToDateTime(t2.Field<string>("Login time")).Date.ToString() 
                      } 
                      equals new 
                      { 
                         LoginID = t1.Field<string>("LoginID"), 
                         reportdate = t1.Field<DateTime>("ReportDate").Date.ToString() 
                      }
                       into joinResult
                       from t in joinResult.DefaultIfEmpty()

                      select new { t2,t };


Have a look at this post.
 
Share this answer
 
v3
Comments
Member 11312264 16-Dec-16 1:06am    
Yes it is working.. Thanks a lot :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900