Linq Sum列包括连接

时间:2011-03-10 20:37:02

标签: c# asp.net linq

我有两张桌子 [Table.Game]
列是"PK_id" "username""couponID"
[Table.Coupons]
列是"PK_id" "CouponID""Points"
两列"CouponID"彼此相关联。假设我在[Table.Game]中有两行用户“harry”这个人有两个不同的couponID
[Table.Coupons]这个用户“harry”中有"CouponID" 1和2.列"Points"有10和20。

关于如何将这两个具有不同"CouponIDs"的不同点值相加的问题。如果我只有一个"CouponId",这确实有效。但不是当用户有2个不同的CouponID时。值为0

var points = (from p in linq.Coupons
              join g in linq.games on p.couponID equals g.couponID
              where g.username == username && g.couponID == p.couponID
              select (int)p.win).Sum();

2 个答案:

答案 0 :(得分:0)

您已加入CouponID上的表格where中不需要它:

var points = (
    from p in linq.Coupons
    join g in linq.games on p.couponID equals g.couponID
    where g.username == username
    select (int)p.win).Sum();

答案 1 :(得分:0)

我通过在我的数据库中使用单对多关系而不是多对多来解决了这个问题。