C# 如何将下面的SQL查询转换为Lambda表达式?
我有一个下面的SQL查询,我已经将其转换为Linq,不知道如何将该查询转换为Lambda表达式 SQLC# 如何将下面的SQL查询转换为Lambda表达式?,c#,sql,sql-server,linq,lambda,C#,Sql,Sql Server,Linq,Lambda,我有一个下面的SQL查询,我已经将其转换为Linq,不知道如何将该查询转换为Lambda表达式 SQL 选择BP* 来自[ams].[BackgroundPackage]作为BP 内部连接[ams].[BkgPackageHierarchyMapping]作为BPHM 在BP.BPA_ID=BPHM.BPHM_BackgroundPackageID上 内部连接[ams].[BkgOrderPackage]作为BOP 在BPHM.BPHM_ID=BOP.BOP_BkgPackageHierarch
选择BP*
来自[ams].[BackgroundPackage]作为BP
内部连接[ams].[BkgPackageHierarchyMapping]作为BPHM
在BP.BPA_ID=BPHM.BPHM_BackgroundPackageID上
内部连接[ams].[BkgOrderPackage]作为BOP
在BPHM.BPHM_ID=BOP.BOP_BkgPackageHierarchyMappingID上
内部连接[ams].[BkgOrder]作为BOP.BOP\U BkgOrderID=BO.BOR\U ID上的BO
其中BO.BOR_MasterOrderID=@OrderID
BO.BOR_被删除=0
Lambda版本
//如何编写上述查询的lambda版本
Linq版本
var packageData =
(from ep in _dbContext.BackgroundPackages
join e in _dbContext.BkgPackageHierarchyMappings on ep.BPA_ID equals e.BPHM_BackgroundPackageID
join t in _dbContext.BkgOrderPackages on e.BPHM_ID equals t.BOP_BkgPackageHierarchyMappingID
join s in _dbContext.BkgOrders on t.BOP_BkgOrderID equals s.BOR_ID
where s.BOR_MasterOrderID == orderId
select new
{
Id = ep.BPA_ID,
Name = ep.BPA_Name,
});
SQL的lambda查询(简明表示法)是:
var lambdaQuery = _dbContext.BackgroundPackages
.Join(_dbContext.BkgPackageHierarchyMappings, ep => ep.BPA_ID, e => e.BPHM_BackgroundPackageID, (ep, e) => ep)
.Join(_dbContext.BkgOrderPackages, ep => ep.BPHM_ID, t => t.BOP_BkgPackageHierarchyMappingID, (ep, t) => new { ep, t})
.Join(_dbContext.BkgOrders, ept => ept.t.BOP_BkgOrderID, s => s.BOR_ID, (ept, s) => new { ept.ep, s })
.Where(eps => eps.s.BOR_MasterOrderID == orderId && eps.s.BOR_IsDeleted == 0)
.Select(eps => eps.ep);
有什么问题吗?看起来很漂亮close@PreetSangha抱歉,如果这个答案冒犯了你,我只是想回答这个问题,因为Neon-X正在寻找一个lambda查询。(与查询表示法相反的简明表示法)删除了-1,现在它得到了改进。