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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
使用group子句访问LINQ到SQL结果_Linq_Loops_Linq To Sql_Linq Group - Fatal编程技术网

使用group子句访问LINQ到SQL结果

使用group子句访问LINQ到SQL结果,linq,loops,linq-to-sql,linq-group,Linq,Loops,Linq To Sql,Linq Group,我有一个LINQ到SQL查询,访问结果有困难。 如果没有'group'子句,它可以正常工作,但是使用group子句,结果字段似乎丢失了 var q = (from p1 in db.Personnel join t2 in db.Table2 on p1.PKField equals t2.PKField where p1.Active != true group p1 by p1.PersonName into grouping select grouping); 现在,我尝试通过以下方式访

我有一个LINQ到SQL查询,访问结果有困难。 如果没有'group'子句,它可以正常工作,但是使用group子句,结果字段似乎丢失了

var q = (from p1 in db.Personnel
join t2 in db.Table2 on p1.PKField equals t2.PKField
where p1.Active != true
group p1 by p1.PersonName into grouping
select grouping);
现在,我尝试通过以下方式访问结果:

foreach (var results in q)
{
   string xx = results.EmailAddress //this line fails with the group by in the linq.
}

如果我从Linq语句中删除group by,那么我可以访问EmailAddress字段。

结果是一个
I分组
,而不是
个人

如果您确定组中的所有人都有相同的电子邮件地址,您可以使用:

foreach (var results in q)
{
   string xx = results.First().EmailAddress;
}
如果要访问组成员的所有电子邮件地址:

foreach (var results in q)
{
   foreach (var item in results)
   {
     string xx = item.EmailAddress;
     ...
   }
}

也许是这样的:

var q = (from p1 in db.Personnel
            join t2 in db.Table2 on p1.PKField equals t2.PKField
            where p1.Active != true
            group p1 by p1.PersonName into grouping
            select new 
            {
                grouping.Key,
                EmailAddress=grouping.Max (g =>g.EmailAddress)
            }
        );
    foreach (var results in q)
    {
        string xx = results.EmailAddress;
    }