EFの各人の合計時間を計算したい。MYSQL ステートメントで合計時間を計算できますが、EF に問題があります。
これがSQL文です
SELECT name, SEC_TO_TIME(Sum(TIME_TO_SEC(TIMEDIFF(ClockOutTime,ClockInTime))))
FROM Attendance
GROUP BY name
上記のステートメントをEFに変換したい。
これは私がこれまでコントローラーで持っていたものです
var model = db.Attendances
.GroupBy(a => a.name)
.Select(g => new AttendanceViewModel
{
name = g.Key,
totalHours = SqlFunctions.DateDiff("seconds",
g.Select( a=> a.ClockInTime),
g.Select(a=>a.ClockOutTime))
}).ToList();
私が抱えている問題は、g.Select(a=>a.ClockInTime) が IEnumrable を返すため、SqlFunctions.DateDiff を直接使用できないことです。この問題を解決するにはどうすればよいですか? 別の方法はありますか?