我有一個ArrayList,我需要能夠單擊一個按鈕,然後從該列表中隨機挑選一個字符串並將其顯示在消息框中。從表中隨機獲取元素
我正在使用實體框架6.x和我有一個表問題。
我想隨機得到從這個表中10個元素,這是我試過的代碼:
List<Question> GetQuestionsRandomly()
{
Random rnd = new Random();
return context.Questions.OrderBy(x => rnd.Next()).Take(10).ToList();
}
,但我得到這個錯誤信息:
An unhandled exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll
Additional information: LINQ to Entities does not recognize the method 'Int32 Next()' method, and this method cannot be translated into a store expression.
我該如何解決這個問題?
謝謝,請你解釋一下這個Guid.NewGuid()如何在上面的例子中工作? –
@AimadMAJDOU,Guid生成的將是唯一的,所以你每次都會得到一個隨機的順序,再加上'Guid.NewGuid'將會被轉換成SQL中的'NEWID()',所以你的SQL或者類似於'Order通過NEWID()',使用分析器並檢查生成的SQL以確保。 – Habib