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:
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.