SQL to LINQ 帮助从一个表中减去另一个表中的数据(多行)

问题描述 投票:0回答:1

我有 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
};
c# sql linq
1个回答
0
投票

假设您的应用程序中定义了一些数据库上下文,您可以使用:

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()
© www.soinside.com 2019 - 2024. All rights reserved.