我有两个表fooditem(itemid,itemname,itemprice)
和另一个rating(itemid,vote,itemid,username)
如何在评级表和itemname中获得groupby项目组合的总和,对应于每个食物项目的总评级的itemprice。 SQL查询是
select table2.sum(votes),table1.itemname,table1.itemprice from table1,table2 where table1.itemid==table2.itemid group by table2.itemid
我从这个查询开始。祝你好运!
List<FoodView> items= (from a in db.FoodItems
join b in db.Ratings on a.itemid equals b.itemid
group b by b.itemid into g
select new FoodView
{
itemname=g.Select(d=>d.itemname),
itemprice=g.Select(d=>d.itemprice),
vote=g.Sum(d=>d.vote)
}).ToList();
FoodViewModel vm = new FoodViewModel {Foodviews = items};
我的模型
public class FoodViewModel
{
public List<FoodView> Foodviews { get; set; }
public FoodViewModel()
{
Foodviews = new List<FoodView>();
}
}
public class FoodView
{
public long? itemid { get; set; }
public string itemname { get; set; }
public long? itemprice { get; set; }
public long? vote { get; set; }
}
答案 0 :(得分:0)
Please use following query:
var foodViewsList = (from t in fooditems
join r in ratings on t.itemid equals r.itemid
group r by new { r.itemid, t.itemname, t.itemprice } into g
select new FoodView
{
itemid = g.Key.itemid,
itemname = g.Key.itemname,
itemprice = g.Key.itemprice,
vote = g.Sum(x => x.vote)
}).ToList();