2009-02-02 1 views

Répondre

2

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.

+0

Comment faire le "??" dans VB.net? – EdenMachine

+0

Ah - Je l'ai eu: De o Dans dc.Orders Ordre par If (o.DueDate, DateTime.Today.AddYears (10)) – EdenMachine

Questions connexes