У меня есть 2 таблицы, Сотрудник и Отсутствие. Я хочу сделать левое внешнее объединение, чтобы получить всех сотрудников и все связанные с ними пропуски. В LINQ2SQL я могу использовать следующее для создания LEFT OUTER JOIN:
from e in Employees
join a in Absences on e.EmployeeID equals a.EmployeeID into ae
from x in ae.DefaultIfEmpty()
select new { FullName = e.Surname + ", " + e.Forename }
Это то, что я ищу, но я хочу показать даты начала отсутствия. Я могу изменить оператор выбора на
select new { FullName = e.Surname + ", " + e.Forename, x.StartDate }
но я получаю ошибку, потому что DateTime не обнуляется.
Как я могу показать пустую строку, если нет StartDate или фактической даты, если она есть? Я пытался использовать x.StartDate.ToShortDateString (), но это, очевидно, выдает ошибку, если оно пустое, я также пытался:
select new {Surname = e.Surname, StartDate = x.StartDate == null ? "" : x.StartDate }
но это тоже не работает. Есть предложения?