從一個國外的討論區 ( 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]
相關連結