2013-11-28 100 views
1

我正在開發一個實體框架4.4.0.0 C#和.NET Framework 4.0的代碼庫。OrderBy通過表達式按升序排列。我需要它嗎?

以前我有這樣的:

var msgs = from message in context.Messages 
      where message.TalkId == talkId && 
       (message.SentBy == userId || message.SentTo == userId) 
      orderby message.DateUtcSent 
      select message; 

現在我有這樣的:

var msgs = from message in context.Messages 
      where message.TalkId == talkId && 
       (message.SentBy == userId || message.SentTo == userId) 
      group message by message.DateUtcSent into grps 
      select new 
      { 
       Value = grps 
      }; 

因爲我想避免重複行。

我還需要orderby message.DateUtcSent這個表達式嗎?
如何添加它(如果我需要的話)?

回答

1

沒有訂單 - 你沒有任何訂購保證。如果您需要擔保,請添加訂單。沒有秩序 - 通過任何觀察到的秩序純粹是巧合。

您可以通過添加orderby grps.Key來添加訂單。隨意詢問評論中的後續內容。

+0

非常感謝您的回答,但是,我必須在哪裏添加'orderby grps.Key'? Linq我很新。 – VansFannel

+1

經過分組。 C#的行爲與SQL不同。你可以按你喜歡的順序添加可能的LINQ子句。您可以在任何想要創建訂單的地方插入訂單。 – usr