C# Linq问题从不同的表中选择一列减去另一列的总和

C# Linq问题从不同的表中选择一列减去另一列的总和,c#,.net,linq,C#,.net,Linq,这是我的sql代码 SELECT M.PartNo AS ModulePartNo, (SELECT SUM(Delivered - Allocated) FROM V_InStock Stk WHERE Stk.PartNo = M.PartNo) AS Available FROM V_Products M WHERE M.PartNo='100-25897' 我在Linq中很难做到这一点,无法计算出求和部分-如果您需要进行聚合分组等操作,我将非常感谢您的帮助,您可能需要设置一个对象

这是我的sql代码

SELECT   M.PartNo AS ModulePartNo,
(SELECT SUM(Delivered - Allocated) 
FROM V_InStock Stk
WHERE Stk.PartNo = M.PartNo) AS Available
FROM V_Products M
WHERE M.PartNo='100-25897'

我在Linq中很难做到这一点,无法计算出求和部分-如果您需要进行聚合分组等操作,我将非常感谢您的帮助,您可能需要设置一个对象来“选择”所有内容。然而,对于直接连接,类似这样的操作应该有效

  var outputObject = (from t1 in dbContext.table1
  join t2 in dbContext.table2 on t1.PartNo equals t2.PartNo
  select (t1.Delivered - t2.Allocated));
var query = from stk in V_InStock
            group stk by stk.PartNo into stkg
            where stkg.Key == '100-25897'
            select new
            {
              ModulePartNo = stkg.Key,
              Available = stkg.Sum(s => s.Delivered) - stkg.Sum(s => s.Allocated)
            }
这应该行得通

  var outputObject = (from t1 in dbContext.table1
  join t2 in dbContext.table2 on t1.PartNo equals t2.PartNo
  select (t1.Delivered - t2.Allocated));
var query = from stk in V_InStock
            group stk by stk.PartNo into stkg
            where stkg.Key == '100-25897'
            select new
            {
              ModulePartNo = stkg.Key,
              Available = stkg.Sum(s => s.Delivered) - stkg.Sum(s => s.Allocated)
            }

我怀疑这是有效的SQL。M在哪里?这是什么:
),0)可用的
?纠正了sql剪切和粘贴问题(叹气)V#u InStock中每个零件有几行吗?这是VB,C#还是很好?是的-V#u InStock中有多行-最好是C#谢谢-这不是我需要的。V_库存包含交付的零件和从交付中分配的零件。有许多交付&字段需要显示某个零件的总可用数量