Je ne pense pas que le fournisseur SQL supporte l'ajout de colonnes lambda à la requête. Toutefois, il prend en charge un opérateur soudent, et que vous faites essentiellement ceci:
SELECT * FROM Tasks
ORDER BY ISNULL(DueDate, DATEADD(year, 10, GETDATE()))
Essayez ceci:
from o in dc.Orders orderby o.DueDate ?? DateTime.Today.AddYears(10)
Si vous avez besoin que faux, date future à être aussi dans votre resultset pour certains raison, vous pouvez modifier la classe d'entité dans le dossier du LinqToSql:
[Column(Storage="_DueDate", DbType="SmallDateTime")]
public System.Nullable<System.DateTime> DueDate
{
get
{
if(this._DueDate == null)
{
return DateTime.Today.AddYears(10);
}
return this._DueDate;
}
donc, si vous demandez jamais pour DueDate sur l'objet et DueDate est nul, vous obtenez au moins l'extrême avenir rendez-vous amoureux.
Comment faire le "??" dans VB.net? – EdenMachine
Ah - Je l'ai eu: De o Dans dc.Orders Ordre par If (o.DueDate, DateTime.Today.AddYears (10)) – EdenMachine