Как работать с полем DateTime при использовании LEFT OUTER JOIN в LinqToSql - PullRequest
0 голосов
/ 07 декабря 2009

У меня есть 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 }

но это тоже не работает. Есть предложения?

1 Ответ

0 голосов
/ 08 декабря 2009

В выбранной выписке напишите

выберите новый {FullName = e.Sameame + "," + e.Forename, StartDate = (DateTime?) X.StartDate}

Это должно сработать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...