[Entity Framework與LINQ開發實戰]EF與 LinqToSQL對隨機排序支援的差異
在使用Linq對Object做排序時,我們可以下 Model.OrderBy(p=>Guid.NewGuid()); 來達成
但如果想把隨機排序在資料庫層級就做好時,需要注意ORM對語法的支援問題。
在 EntityFramework 4之前的版本,如果下這樣的語法,在執行時會出現下面的錯誤:
而在EntityFramework 4以後的版本,則可以正常的運作,所產生出來的SQL語法如下:
但如果是LinqToSQL,則執行時不會有錯誤,但所產生的SQL語法也沒有排序的效果
如下圖:
結論是:
EntityFramework 4 以前 -> 不能使用,會報錯誤
EntityFramework 4 以後 -> 可以使用,正常支援
LinqToSQL -> 不支援,但也不會報錯