日期:2014-05-20  浏览次数:21031 次

问一个简单的LINQ查询问题~
作业要做一个功能,根据产品ID读取评论表中的用户评分。
大概就是,某ID的商品被很多用户打分(1、2、3、4、5),我要将t_Comment中的c_level字段全部取出来相加,再除以打分次数获取平均值作为该商品的最终得分。
t_ProBaseInfo(商品基本信息表)、与t_Comment(评论表)有主外键关联。

在读取评论的时候写了一个方法获取了评论表里的数据:      
  public IQueryable<t_Comment> GetCommentById(string id)
        {
            return db.t_Comment.Where(c => c.t_ProBaseInfo.p_ProNum == id);
        }
viewBag.commemt=GetCommentById(id);

我可以直接通过GetCommentById()获取到某ID商品的所有评分吗?有的话该怎么做?

如果需要另外写一条查询语句只查询评分,该怎么写。
刚刚接触LINQ,请各位大大指教~
LINQ?ASP.NET?MVC LINQ MVC NET

------解决方案--------------------

 List<Score> list = new List<Score> 
            {
                new Score{Id=1,svalue=2.1},
                new Score{Id=1,svalue=2.2},
                new Score{Id=1,svalue=2.3},
                new Score{Id=1,svalue=2.4},
                new Score{Id=1,svalue=2.5}
            };
            var query = list.GroupBy(x => x.Id).Select(p => new { Id = p.Key, Avgvalue = p.Average(c => c.svalue) }).FirstOrDefault();
            Console.WriteLine(query.Avgvalue);