у меня есть два результата Linq (результат result2)Регистрация на двух результатов Linq
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 } };
Я хочу, чтобы следующий результат, я попытался с различными запросами, но не получить так:
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} };
Я выполнил нижеследующий запрос, но получаю исключение "
(Исключение NullReferenceException) Ссылка на объект не установлена в экземпляр объекта."
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();
Пожалуйста, дайте мне знать, если кто-нибудь знает.
Результатом 'DefaultIfEmpty' является' null' для ссылочных типов при пустом. –