I have two Linq Results (result,result2)
List<Employee> result= new List<Employee> {
new Employee { EmpId= 4, Date ='2014-02-26', EmpName= "abc"},
new Employee { EmpId = 5, Date = '2014-02-26', EmpName= "abc"},
new Employee { EmpId = 6, Date ='2014-02-26', EmpName= "abc"},
new Employee { EmpId= 7, Date = '2014-02-26', EmpName= "abc"} };
// Create a list of students.
List<Student> result2 = new List<Student> {
new Student { EmpId= 1, Date ='2014-02-26', StudentId = 9562 },
new Student { EmpId= 2,Date ='2014-02-26', StudentId = 9870 },
new Student { EmpId= 4,Date ='2014-02-26', StudentId = 9913 } };
I want The following result, I had tried with various queries but didn't get like that :
new Employee { EmpId= 4, Date ='2014-02-26', EmpName= "abc",StudentId=9913},
new Employee { EmpId = 5, Date = '2014-02-26', EmpName= "abc",StudentId=Null},
new Employee { EmpId = 6, Date ='2014-02-26', EmpName= "abc",StudentId=Null},
new Employee { EmpId= 7, Date = '2014-02-26', EmpName= "abc",StudentId=Null} };
I have implemented the below query, but getting an exception "
(NullReferenceException was caught) Object reference not set to an instance of an object."
var res = (from r in result
join r2 in result2 on new { EmpId= r.EmpId, Date = r.Date.Value.Year } equals new { EmpId= Convert.ToInt32(r2.EmpId), Date = r2.Date.Value.Year } into list
from l in list.DefaultIfEmpty()
select new
{
EmpId= r.EmpId,
Date=r.Date,
EmpName=r.EmpName,
StudentId=l.StudentId
}).ToList();
Please let me know if anyone know.