如何讓 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]

相關連結

 

  

此文章由 will 發表於 2008/3/25 上午 12:02:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | C# | SQL Server | LINQ

標籤:

收藏:

相關文章

新增評論


(將顯示您的Gravatar圖示)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



線上預覽

十月 14. 2008 06:13