【发布时间】:2010-01-13 17:37:19
【问题描述】:
我有一个 LINQ to SQL 对象,我想对选定的数据进行分组,然后将其传递到视图中。这样做的正确方法是什么?我确定我需要在选择数据时对数据进行分组,而不是在视图中对其进行分组,因为这将导致我需要将大约 200 行而不是 50000 行传递到我的视图中。网上有没有人见过的很好的例子?
干杯
MH
-----编辑-----
我想要两者兼而有之:- 例如,我的数据对象(除其他外)有 2 个我想要提取和分组的属性,ItemDetail.ItemID 和 ItemDetail.Label - 这是一组我想要传递到我的视图中的属性。我的数据工厂返回一个 IQueryable,它将包含(实时)每个 ItemID/Label 组合的大约 100 条记录,因此我想在我的视图中对其进行分组,以便每个 ItemID/Label 组合只显示 1 行。 另外,我如何输入我的视图 - 我尝试过传入类似 var xxx = ...;返回视图(xxx);但我不确定如何正确输入(如果可以的话)视图。我可能可以这样做并让它工作,但我想正确地做到这一点。
----编辑 2----
我对此有更深入的了解。 使用 var IQueryable itemDetList itemDetList = itemDetList.OrderBy(i => i.ItemID).GroupBy(i => i.ItemID).Select(i => i.First()); 生成一个分组列表,每个 ItemID 有 1 行,并保留对象类型,以便我可以将它传递给强类型视图 - 这是操作数据的正确方法吗?如何放置另一层分组,以便在每个 .ItemID 组中按 .Label 分组?
【问题讨论】:
-
我完全不知道你想在这里实现什么。你能用一些样本澄清一下吗?
-
您是否要求使用 linq 语法来执行此操作?
标签: asp.net-mvc linq-to-sql design-patterns