ASP.Net LINQ到SQL组(按System.Generic.IEnumerable集合的语法)

ASP.Net LINQ到SQL组(按System.Generic.IEnumerable集合的语法),asp.net,linq-to-sql,group-by,Asp.net,Linq To Sql,Group By,.Net应用程序调用存储过程并返回存储为“结果”的集合。我希望能够按“CreatorLineOfBusiness ID”对结果进行分组。它返回该字段以及其他几个字段。我想对“结果””数据集使用LINQ查询。提前谢谢 Dim result As IEnumerable(Of eRefer_Reports.uspReport_ReferralsSentBetweenLinesOfBusinessResult) strFromLOBID = " "

.Net应用程序调用存储过程并返回存储为“结果”的集合。我希望能够按“CreatorLineOfBusiness ID”对结果进行分组。它返回该字段以及其他几个字段。我想对“结果””数据集使用LINQ查询。提前谢谢

Dim result As IEnumerable(Of eRefer_Reports.uspReport_ReferralsSentBetweenLinesOfBusinessResult)

             strFromLOBID = " "
            Session("FromLineOfBusiness") = strFromLOBID
            strToLOBID = " "
            Session("ToLineOfBusiness") = strToLOBID

            result = repository.GetQueryResults(CDate(Me.txtStartDate.Text), CDate(Me.txtEndDate.Text), strFromLOBID, strToLOBID)
            BindGridView(result)          

你对Linq分组做过研究吗?请尝试以下101个示例:

然后只需使用键和属性引用在
orderGroups
上迭代,属性引用将是
IEnumerable


应该按照您想要的方式对结果进行分组。

不挑剔,但她确实说了“LINQ query”。:D否则,是的,我只会使用这个
Enumerable.GroupBy(TSource,TKey的)
。@JeremyChild:是的,你是对的。在这种情况下,Jeremy的答案就是她想要的。@Lcarus但这是一样的:D LINQ To Objects无疑会在您没有意识到的情况下使用IEnumerable.GroupBy。使用GroupBy方法可以使代码更清晰。Dim xyz=result.GroupBy(函数(x)x.CreatorLineOfBusinessName)BindGridView(xyz)BindGridView命令给我一个错误,告诉我结果无法转换为Systems.Collections.Generic.IEnumerable(对于接口IEnunerable(Of out T)中的'out'通用参数'T'所需的eRefer_Reports.usp_ReferralsEntBeweenBusiness LinesResult@Susan:尝试在末尾调用ToList();它应返回列表(对于usp_ReferralsEntBeweenBusiness LinesResult)您应该能够绑定到GridViews,因为
Lcarus
指出您不需要使用LINQ进行分组。因为您的结果已经是
IEnumerable
了,所以您也可以使用GroupBy方法。@Susan进展如何?您能够将报告发送到组吗?抱歉,已经有一段时间了,但我正在休假。我很抱歉我正在尝试:BindGridView(result.GroupBy(CreatorLineOfBusinessID)),但这不起作用。很抱歉,我是个新手!
Dim orderGroups = From p In results Group p By Key = p.CreatorLineOfBusinessID Into Group _
Select CreatorBusinessId = Key, Referrals = Group
For Each lobBusiness in orderGroups

 ' Get the lobBusinessId : .CreatorBusinessId
 ' Get the IEnumerable results: .Referrals

Next
Dim query = result.GroupBy(Function(x) x.ID).ToList()