///對於從linq to sql遷移過來的開發者,對隨機排序不會感到陌生,直接為datacontext新增乙個方法再配合反射就可以實現隨機排序了,**如面所示///資料上下文擴充套件
/// public
partial
class
dbdatacontext : iunitofwork
}
而對於linq to entity的開發者們就不能使用上面的方法了,因為dbcontext沒有executemethodcall這個方法,呵呵,只有自己想轍了,事實上,對於system.data.entity空間裡有乙個edmfunction的特性,它與linq to sql裡的function特性類似,都是標識類為函式,就是使用資料來源的某個函式,如sqlserver的newid函式,我們可以把它思路整理一下,**就出來了,我們像它種與領域無關的**放在core專案裡,表示為公用**
///而為了使開發者在使用上方法,我們把newid作成ienumerable介面的擴充套件方法,這樣無論是iqueryable還是ilist,list集合都可以直接使用它了,看**///sql函式的擴充套件類
/// public
static
class
sqlfunctionextensions
}
///而使用了ienumerable的集合擴充套件後,它是否還有延時載入的特性,通過我們的檢測,答案是肯定的,它是延時的,下面是我們的例子///sql函式的擴充套件類
/// public
static
class
sqlfunctionextensions
#endregion
#region 擴充套件方法
//////隨機排序擴充套件方法
/// ///
//////
public
static iqueryableorderbynewid(this ienumerablesource)
#endregion
}
public結果如下:actionresult index()
而進行資料庫檢測的結果,出是令我們滿意的,只取了5條資料
ok,到這種使用linq to entity(entity frameworks環境下)的隨機排序就介紹到這裡,謝謝閱讀!
EF隨機查詢詳解
有一些業務上並不要求查詢出全部資料,而是隨機取出幾條資料,應用場景如下 我要從一群人當中選擇1個人獲得獎金,為了保證每個人的公平性,必須採用隨機演算法 sql語法中,我們可以這樣寫 select top 1 from t order by newid c 當中,可以用random類來獲取隨機數 ef...
自動生成EF排序
為專案中使用所寫,擴充套件實現根據實體自動生成排序,支援多欄位排序。但必須與查詢實體大小寫匹配。一,建立排序實體。排序條件模型 public class orderitemmodel public string sorttype 二,擴充套件orderby。public static iquerya...
Flex 隨機排序
呼叫方法 randomorder array 函式會返回乙個新陣列,就是該陣列隨機排序後的結果 例子 程式 varmyarray array a b c d myarray randomorder myarray 程式 隨機改變陣列的排序 functionrandomorder targetarra...