首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将mysql查询转换为linq语句

无法将mysql查询转换为linq语句
EN

Stack Overflow用户
提问于 2014-06-26 20:47:38
回答 1查看 241关注 0票数 0

我的SQL查询按预期工作:

代码语言:javascript
运行
复制
SELECT SUM(outcome), toaddress
FROM lot l
JOIN incomingpayment ip
ON l.incomingpayment_id = ip.id
WHERE outcome > 0
GROUP BY ip.toaddress
ORDER BY SUM(outcome) DESC

我正在尝试将其转换为LINQ语句,但无论如何都没有取得很大的成功:

代码语言:javascript
运行
复制
var result = 

from l in session.Query<Lot>().ToList()
join ip in session.Query<IncomingPayment>().ToList()
on l.IncomingPayment equals ip
where l.Outcome > 0
group ip by new {ip.ToAddress}
into g
select new
{
   Address = g.Key,
   SumAmount = g.Sum(x => x.Outcome)
};

最后一行中的Outcome是一个Lot字段,因为我对IncomingPayment (group ip...)进行了分组,所以它在g.Sum()调用中不可用。

这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-06-26 20:49:23

你可以试试这个:

代码语言:javascript
运行
复制
var result = from g in (from l in session.Query<Lot>().ToList()
             join ip in session.Query<IncomingPayment>().ToList()
             on l.IncomingPayment equals ip.Id
             where l.Outcome > 0
             select new { Address = ip.ToToAddress, Outcome = l.Outcome})
             group g by g.Address
             select new
             {
                 Address = g.Key,
                 SumAmount = g.Sum(x => x.Outcome)
             };

或者更仔细地说:

代码语言:javascript
运行
复制
Lots = session.Query<Lot>().ToList();
IncomingPayments = session.Query<IncomingPayment>().ToList();

var result = Lots.Join(IncomingPayments, 
                       x=>x.IncomingPayment,  
                       y=>y.Id,
                       (x,y) => new
                       {
                           Address = x.ToToAddress,
                           OutCome = y.Outcome
                       }).GroupBy(x => x.Address, 
                                  x => x.Outcome,
                                  (kew, group) =>
                                  {
                                      Address = key,
                                      SumAmount = group.Sum()
                                  });    
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24430971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档