Entity Framework 嵌套查询 Select() 问题
Entity Framework Nested Query Select() Problem
我是 entity framework 的新手,正在尝试使用来自 Answers
table 的外键获取数据,但出现错误
The nested query is not supported. Operation1='Case'
Operation2='Collect'
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();
ViewModel
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
,这是正常的(预期) 集合类型对象的行为。
我是 entity framework 的新手,正在尝试使用来自 Answers
table 的外键获取数据,但出现错误
The nested query is not supported. Operation1='Case' Operation2='Collect'
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();
ViewModel
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
,这是正常的(预期) 集合类型对象的行为。