首页 > 解决方案 > 如何在 C# LINQ 中编写以下分析函数

问题描述

我试图将以下代码从 T-sql 表达式转换为 linq 表达式

SELECT  PIN.Code AS InvoiceNum ,
       CONVERT(DATE, PIN.Date,110)  AS ExeDate ,
       P.NameAR AS PartnerName,
       PID.StockCount AS StockCount,
       PID.PurchasePrice AS PurchasePrice,
       PID.NetAmmount AS NetAmount ,
       SUM(PID.StockCount) OVER ( ORDER BY PIN.Date ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING 
      )  AS StockBalance 

FROM dbo.PurchaseInvoices AS PIN
INNER JOIN dbo.PurchaseInvoiceDetails AS PID 
ON PID.PurchaseInvoiceID = PIN.PurchaseInvoiceID
INNER JOIN dbo.Partners AS P 
ON P.PartnerID = PID.PartnerID
WHERE PIN.PurchaseOrderID=17

我尝试使用以下 linq 代码

        dynamic data = unitOfWork.PurchaseInvoiceDetailRepository.Get()
                      .OrderBy(x => x.PurchaseInvoice.Date)
                      .Select(x => new { x.PurchaseInvoice.Code, x.PurchaseInvoice.Date, 
                      x.Partner.NameAR, x.StockCount, x.PurchasePrice, x.NetAmmount });

但不行,请帮我解决这个问题。谢谢

标签: c#sql-serverentity-frameworklinqado.net

解决方案


推荐阅读