The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓 LINQ 支援亂數排序功能

從一個國外的討論區 ( LINQ in Action forum ) 得知一個在使用 LINQ 時的小技巧,可以在使用 LINQ to SQL 查詢的時候能有亂數排序的效果。

首先要讓 LINQ to SQL 能夠亂數排序必須先將環境設定好,以下有三個步驟要設定:

1. 先在資料庫中建立一個檢視表(View)

[code:tsql] 

CREATE VIEW RandomView
AS
SELECT NEWID() As ID

[/code]

2. 再到資料庫中建立一個自訂函數(Function)

[code:tsql]

CREATE FUNCTION GetNewId
(
)
RETURNS uniqueidentifier
AS
BEGIN
RETURN (SELECT ID FROM RandomView)
END

[/code]

P.S. 第一步驟是必要的,因為你沒辦法�� Function 中直接回傳一個 NEWID()

3. 最後,把這個 GetNewId 函數拖曳到 LINQ to SQL Class Designer 中,之後就可以使用了!

至於使用的方法也很簡單,如下:

[code:c#] 

MyDataContext db =  new MyDataContext();

var pics = from p in db.Pictures
               orderby db.GetNewId()
               select p;

[/code]

相關連結