Asp.net mvc 3 MVC 3控制器GroupBy视图错误

Asp.net mvc 3 MVC 3控制器GroupBy视图错误,asp.net-mvc-3,linq,Asp.net Mvc 3,Linq,我正在从控制器创建MVC3视图。我的模型“MyList”包含大量记录。当我使用以下linq语句创建模型时: var model = _db.MyList.GroupBy(r => r.myKey); 我收到错误:“传递到字典中的模型项的类型为“System.Collections.GenericList”1…但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项 在视图中,我在第一行中有以下代码: @model IEnumerable&

我正在从控制器创建MVC3视图。我的模型“MyList”包含大量记录。当我使用以下linq语句创建模型时:

var model = _db.MyList.GroupBy(r => r.myKey);
我收到错误:“传递到字典中的模型项的类型为“System.Collections.GenericList”1…但此字典需要类型为“System.Collections.Generic.IEnumerable”的模型项

在视图中,我在第一行中有以下代码:

@model IEnumerable<MyApp.Models.MyList>

来自控制器,但没有乐趣。我缺少什么?

model.ToList()
将返回一个
列表,其中
T
是MyList。您的模型类型是直接的
MyList
。如果上面的
var
声明已经返回
MyList
,只需执行
返回视图(model)

GroupBy返回的是
i分组的集合,而不是
MyList
(奇怪的是,你没有列表的列表


无论如何,将一个
GroupBy
转换成一个列表都没有多大意义。你的意思是
OrderBy

这个问题困扰了我一上午。我在下面的帖子中找到了我问题的答案:

我基本上返回以下内容:

public static IEnumberable<MyModel> FindTheKeys(this IQueryable<MyModel> myList)
{
    return myList.OrderBy(r => r.AreaKey);
}

OrderBy返回的记录太多-GroupBy返回单个键的子集,例如,每个键都有几行。也许我应该在OrderBy上使用DISTINCT on键?@soulia-不,GroupBy返回的记录数与OrderBy相同,但是它在多个组中返回的记录数相同。记录的总数应该相同。我不能说是否使用DISTINCT更好,因为我不知道你的数据模型或你的要求。谢谢!我想做的是只返回记录的子集。例如,如果我的集合类似:-ID子键名称年龄-1 10汤姆20-2 10弗雷德21-3 11萨利30-4 12吉尔32,我的结果集将是10,11,12抱歉,我“我在输入表格数据时遇到了一个触摸时间。感谢您的回复。我在执行
返回视图(模型)
public static IEnumberable<MyModel> FindTheKeys(this IQueryable<MyModel> myList)
{
    return myList.OrderBy(r => r.AreaKey);
}
var model = _db.MyModel.FindTheKeys().GroupBy(r => r.AreaKey).Select(g => g.First());