Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用分组依据进行查询_C#_Linq_Group By - Fatal编程技术网

C# 使用分组依据进行查询

C# 使用分组依据进行查询,c#,linq,group-by,C#,Linq,Group By,我正在尝试使用GROUPBY语句进行查询,但迄今为止没有成功 我有一个包含不同类型活动(tblExcursion)的表和一个包含计划(tblReservationDetail)的表。在tblExcursion中,我有一列“GroupName”。一个组名下有多个活动(例如,皮划艇、帆船、水球是组名水上运动) 现在我想检索每个组名(不是每个活动/游览!)的参与者数量。但我不是通过.GroupBy()或group…by实现的 这是我使用activityname而不是groupname的查询: var

我正在尝试使用GROUPBY语句进行查询,但迄今为止没有成功

我有一个包含不同类型活动(tblExcursion)的表和一个包含计划(tblReservationDetail)的表。在tblExcursion中,我有一列“GroupName”。一个组名下有多个活动(例如,皮划艇、帆船、水球是组名水上运动)

现在我想检索每个组名(不是每个活动/游览!)的参与者数量。但我不是通过.GroupBy()或group…by实现的

这是我使用activityname而不是groupname的查询:

var vAllExcursions = (from oExcursion in clsApplication._oDBConnection.tblExcursions
                      select oExcursion).ToList();

foreach (tblExcursion EXitem in vAllExcursions)
{
    var vAllExcursionsPerType = (from oReservationDetail in clsApplication._oDBConnection.tblReservationDetails
                                         where oReservationDetail.StartTime.Date.Year == this.cboYear.getSelectedID()
                                         && oReservationDetail.StartTime.Date.Month == this.cboMonth.getSelectedID()
                                         && oReservationDetail.ExcursionID == EXitem.ID
                                         select oReservationDetail).ToList();
}

Here I fill my datagrid

您要按
GroupName
分组以获取组:

var vAllExcursions = clsApplication._oDBConnection.tblExcursions
    .GroupBy(ex => ex.GroupName)
    .ToList();
然后在内部循环中,通过检查
偏移id
是否匹配与组关联的列表中的任何id来查找任何相关的预订:

foreach (var EXitemGroup in vAllExcursions)
{
    var excursionIds = EXitemGroup.Select (exg => exg.ID).ToArray();
    ...
        && excursionIds.Contains(oReservationDetail.ExcursionID)
    ...
}

您要按
GroupName
分组以获取组:

var vAllExcursions = clsApplication._oDBConnection.tblExcursions
    .GroupBy(ex => ex.GroupName)
    .ToList();
然后在内部循环中,通过检查
偏移id
是否匹配与组关联的列表中的任何id来查找任何相关的预订:

foreach (var EXitemGroup in vAllExcursions)
{
    var excursionIds = EXitemGroup.Select (exg => exg.ID).ToArray();
    ...
        && excursionIds.Contains(oReservationDetail.ExcursionID)
    ...
}

我得到一个错误:除了Contains操作符以外,查询操作符的LINQ到SQL实现中不能使用局部序列。是的,我是使用内联数据列表进行测试的,让我使用SQL后端进行测试。作为对努力回答您的问题的用户的一种礼貌,并且为了本网站未来用户的利益,请标记解决您问题的答案。例如,当你打开问题时,计票下面有一个大的复选标记,你可以点击它来标记答案。一旦你在这里做到了这一点,对你剩下的问题做到这一点,并使之成为一种习惯。谢谢:)我得到错误:除了Contains操作符之外,查询操作符的LINQ到SQL实现中不能使用本地序列。是的,我是使用内联数据列表进行测试的,让我使用SQL后端进行测试。作为对努力回答您的问题的用户的一种礼貌,并且为了本网站未来用户的利益,请标记解决您问题的答案。例如,当你打开问题时,计票下面有一个大的复选标记,你可以点击它来标记答案。一旦你在这里做到了这一点,对你剩下的问题做到这一点,并使之成为一种习惯。谢谢:)