ETA と ETD の 2 つの null 可能な日時列を持つテーブルがあります。人には必ず価値があります。テーブルを日付順に並べたい。たとえば、ETA が null の場合、ETD を使用して注文します。ETD が null の場合は ETA を使用し、両方が null でない場合は ETA を使用します (常に最初であるため)。
私はこれを持っています:
var route = db.RouteJourney.Where(j => j.JourneyId == id).OrderByDescending(j => j.ETA ?? j.ETD);
私もこれを試しました(これは同じです):
var route = db.RouteJourney.Where(j => j.JourneyId == id).OrderByDescending(j => j.ETA.HasValue ? j.ETA : j.ETD);
何か不足していますか?私の小さな脳は、ETAがnullの場合はETDを使用してから注文すると言いますが、正しい結果は得られません。
任意の支援をいただければ幸いです。
編集
私はこれを取得しています:
RouteJourney が [Name, RouteId (Key), JourneyId, ETA, ETD] の場合
値は次のとおりです。
[ストップ A, 1, 1, null, 10/03/13], [ストップ B, 4, 1, 12/03/13, 13/03/13], [ストップ C, 2 , 1, 14/03/ 13、ヌル]、[ストップD、3、1、16/03/13、ヌル]
このように注文しました:
ストップ C ストップ B ストップ A ストップ D
ありがとう...