Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将SQL查询转换为LINQ?_C#_Sql_Sql Server_Linq - Fatal编程技术网

C# 将SQL查询转换为LINQ?

C# 将SQL查询转换为LINQ?,c#,sql,sql-server,linq,C#,Sql,Sql Server,Linq,我知道基本LINQ,但我已经有两年没有使用过它了。所以我忘了林克。我无法将此SQL查询转换为LINQ SELECT [CompanyName] ,[ContactPerson] ,[Address] ,[Email] ,[InActive] ,(Select SUM(isnull(CreditAmount,0) - isnull(DebitAmount,0)) FROM [dbo].[SupplierTransaction] where SupplierId

我知道基本LINQ,但我已经有两年没有使用过它了。所以我忘了林克。我无法将此SQL查询转换为LINQ

   SELECT  
   [CompanyName]
  ,[ContactPerson]
  ,[Address]
  ,[Email]
  ,[InActive]
  ,(Select SUM(isnull(CreditAmount,0) - isnull(DebitAmount,0))  FROM [dbo].[SupplierTransaction] where SupplierId = s.SupplierId)  as Balance FROM [dbo].[Supplier] S

我试过了,但没用

from s in Suppliers
select new
{
s.SupplierId,
s.CompanyName,
s.ContactPerson,
s.Address,
s.Email,
s.InActive,
s.BranchId,
s.CreateDate,
s.CreatedBy,
s.UpdateDate,
s.UpdatedBy,
s.PhoneNumber,
Balance = (from v in SupplierTransactions
                          where v.SupplierId ==  s.SupplierId
                          select (v.Sum(v.CreditAmount-v.DebitAmount)))
}

我没有测试它,但它应该是这样的:

var query = (from s in Suppliers 
             select new 
             {
                 SupplierId = s.SupplierId,
                 CompanyName = s.CompanyName,
                 ContactPerson = s.ContactPerson,
                 Address = s.Address,
                 Email = s.Email,
                 InActive = s.InActive,
                 BranchId = s.BranchId,
                 CreateDate = s.CreateDate,
                 CreatedBy = s.CreatedBy,
                 UpdateDate = s.UpdateDate,
                 UpdateBy = s.UpdatedBy,
                 PhoneNumber = s.PhoneNumber,
                 Balance = SupplierTransactions
                          .Where(st => st.SupplierId == s.SupplierId)
                          .Select(st => (st.CreditAmount - st.DebitAmount))
                          .Sum()
             });

也许你应该展示一下你迄今为止所做的尝试和失败的地方。提供您得到的错误、异常或意外结果。这样人们就可以帮助您,而不是为您编写代码。抱歉,现在更新我的问题请详细说明它是如何工作的请展开
不工作的
。余额=(来自SupplierTransactions中的v,其中v.SupplierId==s.SupplierId选择((v.CreditAmount).Sum()-(v.CreditAmount.Sum())}我尝试了此操作。但是显示此错误“'decimal'不包含'Sum'的定义,并且最佳扩展方法重载'Queryable.Sum(IQueryable)'需要'IQueryable'类型的接收器”哎呀。请小心,我在where条件下犯了一个错误。你应该用s.SupplierId替换一个st.SupplierId…我编辑了我的答案!