我有以下内容:
Question question = _questionsRepository.GetById(questionId);
我想做以下事情:
QuestionHeader questionDetail = _questionsRepository.GetById(questionId)
.Select(m => new QuestionHeader { QuestionId = m.QuestionId })
但它给我一个错误说:
Models.Core.Question'不包含'Select'和no的定义 扩展方法'选择'接受类型'Models.Core.Question'的第一个参数 可以找到(你错过了使用指令或程序集引用吗?)
如何填充questionDetail?
答案 0 :(得分:1)
您可能错过了System.Linq
命名空间。
确保你有
using System.Linq;
位于源文件的顶部。
答案 1 :(得分:1)
你能不能这样做(假设你真的想要点击数据库)?
QuestionHeader questionDetail = new QuestionHeader()
{
QuestionId = _questionsRepository.GetById(questionId).QuestionId
};
或
QuestionHeader questionDetail = new QuestionHeader() { QuestionId = questionId };
......或者如果您还需要这个问题:
Question question = _questionsRepository.GetById(questionId);
QuestionHeader questionDetail = new QuestionHeader() { QuestionId = questionId };
如果您有单个对象而不是集合,则不需要LINQ。
答案 2 :(得分:1)
如果您想致电Select
,则必须传递IEnumerable<T>
参数作为来源。由于您没有IEnumerable<T>
,因此无法致电Select
。