使用LINQ获取平均值并加入多个表

时间:2011-01-05 05:27:23

标签: c# linq

StackOverFlow帮助我在另一篇文章中构建下面的LINQ。如何修改LINQ以应用第二个where条件并加入第二个表?第二个条件是查看第二个表中的列。

var ratingAverage = ctx.Rates.Where(r => r.Id == Id)  
    .GroupBy(g => g.Id, r => r.Rating)  
    .Select(g => new { Id = g.Key, Rating = g.Average() });

上面的LINQ将通过Id获得平均值和组。我是,我有一张人桌。我想在LINQ中包含People表并增强Where条件以在PersonId上过滤。评级表上的Id是人员表上的外键。

非常感谢你给予的帮助。

1 个答案:

答案 0 :(得分:0)

int ratingId = 1; 
int personId = 9;

var ratingAverage = ctx.Rates.Where(
     r => r.Id == ratingId && r.Person.Id == personId)  
   .GroupBy(g => g.Id, r => r.Rating)  
   .Select(g => new { Id = g.Key, Rating = g.Average() });