【发布时间】:2014-05-21 04:02:18
【问题描述】:
我有一个以下 SQL 查询,我已将其转换为 Linq,但不知道如何将此查询转换为 Lambda 表达式。
SQL
SELECT BP.*
FROM [ams].[BackgroundPackage] AS BP
INNER JOIN [ams].[BkgPackageHierarchyMapping] AS BPHM
ON BP.BPA_ID = BPHM.BPHM_BackgroundPackageID
INNER JOIN [ams].[BkgOrderPackage] AS BOP
ON BPHM.BPHM_ID = BOP.BOP_BkgPackageHierarchyMappingID
INNER JOIN [ams].[BkgOrder] AS BO ON BOP.BOP_BkgOrderID = BO.BOR_ID
WHERE BO.BOR_MasterOrderID = @OrderID
AND BO.BOR_IsDeleted = 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,
});
【问题讨论】:
-
有什么问题?似乎很接近
标签: c# sql sql-server linq lambda