Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# 我怎样才能把这个转给LAMBDA?_C#_Asp.net_Linq_Lambda - Fatal编程技术网

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();