我有 2 个表格,用于捕获“小时目标”和“已完成小时”。一个表保存原始值,另一个表保存时间。可以有多个日志。我正在尝试创建一个 linq 查询,该查询添加指定用户的记录时间并从主表中减去该数字。例如:
主表
ID:1 用户:User1 目标:20
日志表
ID:1 用户:User1 已完成:5
ID:2 用户:User1 已完成:8
返回值应该是
ID:1 用户:User1 目标:20 已完成:13 剩余:7
这是我的 linq 查询
var ah = db.AccumulatedHours.ToList();
var gh = db.GoalHours.Where(m=>m.UserID == 4).ToList();
var rmng = from GH in gh
join AH in ah
on GH.ID equals AH.GH_ID
Select new GoalHours
{
ID = GH.ID,
GoalHours = GH.Target
Completed = AH.Completed
Remaining = GH.Target - AH.Completed
};
假设您的应用程序中定义了一些数据库上下文,您可以使用:
context.GoalHours
.Join(
context.AccumulatedHours,
x => x.ID,
x => x.GH_ID,
(x, y) => new { x.ID, x.Target, y.Completed, Remaining = x.Target - y.Completed })
.ToArray(); // or .ToArrayAsync()