3
我有兩個表使用LINQ連接查詢:防止重複總和LINQ組,並加入
例如:
MandaysReal
date | mandays
----------------------
2015/10/15 | 5
2015/10/15 | 7
EstateAttendance
date | mandays
----------------------
2015/10/15 | 2
然後我用這個查詢和團體加入日期:
var data = from m in db.ManDaysReals
join a in db.EstateAttendances on m.Date equals a.Date
group new { M = m, A = a } by m.Date into g
where g.FirstOrDefault().A.Date >= startDate && g.FirstOrDefault().A.Date <= endDate
&& g.FirstOrDefault().A.Block.Section.Id == SectionId
select new CompareMandaysViewModel
{
Date = g.FirstOrDefault().A.Date,
HKMandays = g.Sum(x => x.M.Mandays),
HKAttendance = g.Sum(x => (decimal)x.A.mandays),
};
結果顯示如下:
CompareMandaysViewModel
date | HKMandays | HKAttendance
2015/10/15 | 12 | 4 <-- why the result is 4 ?
HKAttendance的價值是重複的,任何人都可以幫助我?
謝謝
應該是什麼'正確的值HKAttendance'而不是4? (這是2?這個計算的邏輯是什麼) – Fabjan
該值應該爲2,因爲EstateAttendance中只有一個數據 – Mamen
當您在LINQ中使用「join」關鍵字時,您就有笛卡爾積。這意味着連接會爲您提供2條記錄,其中Mandays = 2導致SUm爲4. –