簡體   English   中英

在Linq中訂購實體多列

[英]Ordering in Linq to Entities Multiple Columns

我在SQL Server中有一個表,其中包含以下列

  • ID(身份/主鍵)
  • DestinationID(外鍵)
  • 日期(日期字段)
  • 時間(時間場)
  • DayOfWeek(Char(3)Field)即“MON”,“TUE”等。

我想按日期和時間訂購數據,然后按DayOfWeek和Time訂購數據。 因此,所有帶日期的記錄都顯示在頂部,按時間排序,然后是按時間排序的DayOfWeek。

我已經嘗試了幾種方法,但只是無法理解它,我有以下代碼

    var qry = ctx.DestinationTimings.Where(x => x.DestinationID == this.ID)
                     .OrderBy(t => t.Date).ThenBy(t => t.Date != null)
                     .ThenBy(t => SqlFunctions.CharIndex(t.DayOfWeek + ",", "MON,TUE,WED,THU,FRI,SAT,SUN"))
                     .ThenBy(t => t.Time);

如果Date為空,你可以這樣做:

var qry = ctx.DestinationTimings.Where(x => x.DestinationID == this.ID)
                 .OrderBy(t => t.Date ?? DateTime.MaxValue)
                 .ThenBy(t => SqlFunctions.CharIndex(t.DayOfWeek + ",", "MON,TUE,WED,THU,FRI,SAT,SUN"))
                 .ThenBy(t => t.Time);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM