C# 我怎样才能把这个转给LAMBDA?
见鬼,先生/妈妈 这是我的原始查询C# 我怎样才能把这个转给LAMBDA?,c#,asp.net,linq,lambda,C#,Asp.net,Linq,Lambda,见鬼,先生/妈妈 这是我的原始查询 SELECT dbo.Products.AHPPartnerId, dbo.Products.Name AS Product, dbo.AHPPartners.Name AS Partner, Count(dbo.OrderProducts.ProductId) AS totalCount, dbo.Products.Id AS ProductId FROM dbo.AHPPartners RIGHT JOIN dbo.Products ON dbo.Pro
SELECT
dbo.Products.AHPPartnerId,
dbo.Products.Name AS Product,
dbo.AHPPartners.Name AS Partner,
Count(dbo.OrderProducts.ProductId) AS totalCount,
dbo.Products.Id AS ProductId
FROM
dbo.AHPPartners
RIGHT JOIN dbo.Products ON dbo.Products.AHPPartnerId = dbo.AHPPartners.Id
RIGHT JOIN dbo.OrderProducts ON dbo.OrderProducts.ProductId = dbo.Products.Id
GROUP BY
dbo.AHPPartners.Id,
dbo.Products.AHPPartnerId,
dbo.Products.Name,
dbo.AHPPartners.Name,
dbo.Products.Id
ORDER BY
totalCount DESC
我怎样才能把它转换成lambda表达式我想在我的DTO中瞄准它
{
public long ProductId { get; set; }
public long? PartnerId { get; set; }
public string PartnerName { get; set; }
public string ProductName { get; set; }
public double TotalCount { get; set; }
}
你好,我已经有答案了
var topseller = await Context.Entities.Products
.GroupJoin(Context.Entities.AHPPartners,
products => products.AHPPartnerId,
ahp => ahp.Id,
(products, ahp) => ahp.Select(s => new { p = products, a = s }).DefaultIfEmpty(new { p = products, a = (AHPPartner)null })
).SelectMany(g => g)
.Join(Context.Entities.OrderProducts,
firstJoin => firstJoin.p.Id,
orderProducts => orderProducts.ProductId,
(firstJoin, orderProducts) => new { firstJoin.p, firstJoin.a, orderProducts }
)
.Select(s => new {
ProductName = s.p.Name,
ProductId = s.p.Id,
PartnerName = s.a.Name,
PartnerId = s.a.Id
})
.GroupBy(g => new { g.PartnerName, g.ProductName, g.ProductId, g.PartnerId })
.Select(s => new TopSellerProductDTO {
ProductName = s.Key.ProductName,
PartnerName = s.Key.PartnerName,
PartnerId = s.Key.PartnerId,
ProductId = s.Key.ProductId,
TotalCount = s.LongCount()
})
.ToListAsync();