[英]Entity Framework Nested Query Select() Problem
我是實體框架的新手,並嘗試使用Answers
表中的外鍵獲取數據,但出現錯誤
不支持嵌套查詢。 操作1='案例' 操作2='收集'
p.Answers.Count()
或p.Answers.SingleOrDefault().correct_answer
作為字符串工作正常但p.Answers.Select(c => c.correct_answer).ToList()
拋出nested query error
我想將它保留在一個查詢中,因為可能有數千個問題,所以我不想檢查單獨查詢的答案。 以下是我的代碼。
return db.Questions.Where(p => p.q_id == q_id).Select(p => new QuestionViewModel
{
q_id = p.q_id,
q_text = p.q_text,
q_answer = p.Answers.Count() > 0 ? p.Answers.Select(c => c.correct_answer).ToList() : null
}).OrderBy(x => x.q_id).ToList();
視圖模型
public class QuestionViewModel
{
public long q_id { get; set; }
public string q_text { get; set; }
public List<string> q_answer { get; set; }
}
例外是告訴你 EF 不支持條件子查詢,由這樣的表達式暗示:
p.Answers.Count() > 0 ? p.Answers.Select(c => c.correct_answer).ToList() : null
因此,只需刪除條件運算符:
q_answer = p.Answers.Select(c => c.correct_answer).ToList()
如果問題沒有相關答案, q_answer
將填充空列表而不是null
,這是集合類型對象的正常(預期)行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.