3
我有三個實體框架對象,測驗,問題和選項。 Quiz包含Question對象的集合,Question則包含一個Option對象的集合。我想從DBContext
返回一個指定測驗的隨機問題列表,每個問題應該包含隨機排序的關聯選項集合。LINQ中的子查詢上的Random Orderby
到目前爲止,我已經能夠成功地獲得問題的隨機列表,但是我無法隨機化問題的選項。
注意:我已經寫了幾個不同的混排擴展方法,在這個例子中,爲了簡單起見,我使用Guid排序。
var questions = db.Questions.Where(q => q.QuizId == quizId).Include(q => q.Options).OrderBy(a => Guid.NewGuid());
我該如何隨機洗牌選項?
我已經寫了幾個不同的shuffle擴展,但他們已經證明太慢了。這是另一個話題,但我會更新這個問題,以反映洗牌的方法並不重要 – Crake
將內存中的結構洗到內存後很容易。通過ORM在DB端混洗它們可能也可能不可行。 – Servy
@Servy同意,但在這種情況下,我不是客戶,也不是在客戶端編寫代碼。 – Crake