我試圖從使用實體框架的Azure SQL數據庫檢索隨機記錄。我知道如果你指定:具有指定Guid的實體框架OrderBy
OrderBy(x => Guid.NewGuid())
它會隨機化查詢的結果。
但是,如果我指定一個GUID:
OrderBy(x => guidVariable)
它不隨機的結果。
,我想這樣做的原因是爲了能夠頁的隨機結果與出隨機正在與每一個電話改變了:
(我用的是返回一個IQueryable一個存儲庫模式)
recordRepository.FetchByIds(Ids)
.OrderBy(x => randomizeKey)
.Skip(seedIndex)
.Take(pageSize)
.ToList();
庫代碼:
return Context.Entities.Include("Path")
.Include("Path")
.Where(x => ids.Contains(x.Id));
我是在假設實體框架解釋Guid.NewGuid(),並有SQL Server生成它糾正自己的?有沒有辦法解決這個問題,或者我做錯了什麼?
什麼是'guidVariable'? –
指定的Guid變量 – Chris
是否預定義?如果您每次檢索這些項目時都沒有創建一個新的「Guid」,它總是會根據這個預先存在的「Guid」進行排序。所以它會一直返回相同的序列。關於你的第一個方法的事情是,它會在每次被調用時創建一個新的'Guid',從而每次隨機化它。 –