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
从linq中的联接表中选择列的平均值_Linq_Join_Average - Fatal编程技术网

从linq中的联接表中选择列的平均值

从linq中的联接表中选择列的平均值,linq,join,average,Linq,Join,Average,我有以下SQL代码: select AVG(passing.Duration), passing.pId, p.name, zn.title from passing inner join zn on passing.zId = zn.zId inner join p on passing.pId = p.pId group by passing.pId, zn.title, p.name 我想用linq格式写,我写的如下,但我不知道如何使用avergae函数来传递。Durat

我有以下SQL代码:

select  AVG(passing.Duration), passing.pId, p.name, zn.title 

from passing inner join zn on passing.zId = zn.zId 

inner join p on passing.pId = p.pId 

group by  passing.pId, zn.title, p.name
我想用linq格式写,我写的如下,但我不知道如何使用avergae函数来传递。Duration,它不存在p.Duration的平均函数

var pass = from p in db.passings
           join z in db.zns on p.zId equals z.zId
           join pr in db.ps on p.pId equals pr.pId
           select new {p.Duration, p.pId, pr.name, z.title};
试试这个:

var pass = from p in db.passings
       join z in db.zns on p.zId equals z.zId
       join pr in db.ps on p.pId equals pr.pId
       select new {p.Duration, p.pId, pr.name, z.title} into temp
       from t in temp
       group t by new{t.pId, t.name, t.title} into gr
       select new{gr.Key.pId, 
                  gr.Key.name, 
                  gr.Key.title, 
                  duration = gr.Average(c=>c.Duration)};
试试这个:

var pass = from p in db.passings
       join z in db.zns on p.zId equals z.zId
       join pr in db.ps on p.pId equals pr.pId
       select new {p.Duration, p.pId, pr.name, z.title} into temp
       from t in temp
       group t by new{t.pId, t.name, t.title} into gr
       select new{gr.Key.pId, 
                  gr.Key.name, 
                  gr.Key.title, 
                  duration = gr.Average(c=>c.Duration)};
LINQ查询中缺少子句LINQ查询中缺少子句LINQ查询中缺少子句