C# 隨機列表


一、問題描述

  在EF中使用隨機排序出現的問題:LINQ to Entities does not recognize the method 'System.Guid NewId()' method, and this method cannot be translated into a store expression .

  解釋就是:在使用 LINQ TO Entities 中生成的 sql 語句中找不到該 System.Guid NewId() 方法。畢竟在 sql 中確實不存在該函數。

二、解決思路 

  那就是從數據庫中取出數據,拿到數據在進行排序,返回到客戶端。

第一種使用 Random 隨機排序:

 

var query = BuildQuery(_infoRepository
                .GetAll()
                .PageBy(input)
                .ToListAsync() 
Random random = new Random(); var ent = (from q in query  select new { q, r = random.Next(1, 10) });
var t = ent.OrderBy(x => x.r).Select(x => x.q).ToList();

 

第二種使用 Guid 隨機排序:

var query = BuildQuery(_infoRepository
                .GetAll();
var querySetTop = query.ToList().OrderBy(x => Guid.NewGuid());

先使用 ToList() 方法表示已經把數據從數據庫加載到客戶端了,在進行排序就ok了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM