你基本上需要連接兩個表,組由結果UserId和 針對用戶的每個項目在Price屬性值上調用Sum
方法。
像這樣的事情
var usersWithTotalPrice = (from a in db.Users
join b in db.UserPrice on a.UserId equals b.UserId
select new { UserId = a.UserId,
FamilyName = a.Name + " " + a.FamilyName,
Price = b.Price}
).GroupBy(f => f.UserId, items => items, (a, b) => new
{
UserId = a,
FamilyName = b.FirstOrDefault().FamilyName ,
Price = b.Sum(g=>g.Price)
}
).ToList();
usersWithTotalPrice
變量將是一個UserId
,FamilyName
和Price
財產每個項目的集合。我使用匿名投影。如果你有一個視圖模型,你可以使用它。
public class UserWithPrice
{
public int Id { set;get;}
public string FamilyName { set;get;}
public decimal Price { set;get;}
}
和使用,在突出部分
var usersWithTotalPrice = (from a in db.Users
join b in db.UserPrice on a.UserId equals b.UserId
select new { UserId = a.UserId,
FamilyName = a.Name + " " + a.FamilyName,
Price = b.Price}
).GroupBy(f => f.UserId, items => items, (a, b) =>
new UserWithPrice
{
Id = a,
FamilyName = b.FirstOrDefault().FamilyName ,
Price = b.Sum(g=>g.Price)
}
).ToList();
更新你的實體/ Dbset /物業基於您定義名稱。
那麼,你試圖做什麼? – tym32167
自己做一個嘗試,並回來你試過,不工作... https://stackoverflow.com/questions/12238423/linqpad-convert-sql-to-linq-command –
我希望每個客戶的購買數量是 – user6805346