【发布时间】:2013-07-15 13:02:18
【问题描述】:
我正在使用实体框架来执行此操作,我有这个 lambda 表达式:
public IList<Model.questionhint> GetRecordsPlease(int listTask, int listActivity)
{
IList<Model.questionhint> lstRecords = context.questionhints.ToList();
return lstRecords.GroupBy(x => new {
x.QuestionNo,
x.ActivityID,
x.TaskID })
.Where(a => a.Key.TaskID == listTask
&& a.Key.ActivityID == listActivity)
.ToList();
}
但它说:
不能隐式转换类型 '
System.Collections.Generic.List<System.Linq.IGrouping<AnonymousType#1,iStellar.Model.questionhint>>' 到“System.Collections.Generic.IList<iStellar.Model.questionhint>”。一个 存在显式转换(您是否缺少演员表?)
此代码位于我的名为 DAOQuestionHint 的 CRUD 类文件中。
我如何返回这个,因为我需要像这样在我的 xaml.cs(后面的代码)中调用它:
私有 DAO.DAOQuestionHint qh = new DAO.DAOQuestionHint();
IList<Model.questionhint> lstQuestionHints = qh.GetRecordsPlease(taskID, activityID);
这就是我的数据库表的样子:
我想要的是将相同activityID、taskID和questionNo的记录组合在一行中,现在每条记录都像这样逐行分隔:
我希望它像
我[回答]每天下午小睡一下
太阳 [答案] 不会绕地球转。
所以我尝试通过使用 for 循环在后面的代码中使用替代方案,但如果有 3 条或更多条相同的 activityID 、 taskID 和 questionNo 记录,这将无法完美运行,所以我需要在查询中对它们进行分组首先。
【问题讨论】:
-
好吧,您已经创建了一系列组 - 您如何想要将*这些作为单个列表返回。目前尚不清楚您期望的结果是什么。 (我还建议将
Where调用移动到之前GroupBy调用 - 因为您只有一个活动 ID 和一个任务 ID,所以按这些进行分组没有意义。您可以按QuestionNo分组。)
标签: c# linq entity-framework lambda dao