Я не думаю, что поставщик SQL поддерживает добавление лямбда-столбцов в запрос. Тем не менее, он поддерживает оператор объединения, и, поскольку вы, по сути, делаете это:
SELECT * FROM Tasks
ORDER BY ISNULL(DueDate, DATEADD(year, 10, GETDATE()))
Попробуйте это:
from o in dc.Orders orderby o.DueDate ?? DateTime.Today.AddYears(10)
Если вам по какой-то причине необходимо, чтобы эта фиктивная будущая дата также присутствовала в вашем наборе результатов, вы можете изменить класс сущностей в файле LINQtoSQL designer.cs:
[Column(Storage="_DueDate", DbType="SmallDateTime")]
public System.Nullable<System.DateTime> DueDate
{
get
{
if(this._DueDate == null)
{
return DateTime.Today.AddYears(10);
}
return this._DueDate;
}
Так что, если вы когда-либо запросите DueDate для объекта, а DueDate имеет значение null, вы по крайней мере получите дату в далеком будущем.