我正在尝试将一些SQL更改为Linq-to-Sql,但是我在SQL中有以下行,我不确定如何转换:
SUM(Quantity * IsNull(ExchangeRate,1) * Factor )
所以我到目前为止编写了Linq分组如下:
var items = from item in _dataContext.GetTable<Trade>()
group item by new {item.Curve}
into grp
select new Model.Position
{
Curve = grp.Key.Curve,
Value = ... "That line here"
};
return item
我想过使用let关键字,并尝试使用grp.Sum一直在努力,因为查询中存在IsNull。
非常感谢任何转换此查询的帮助!
理查德
答案 0 :(得分:0)
打字盲(没有intellisense:D)但以下应该有效:
var items = from item in _dataContext.GetTable<Trade>()
group item by new { item.Curve } into grp
select new Model.Position
{
Curve = grp.Key.Curve,
Value = grp.Sum(i => i.Quantity * (i.ExchangeRate.HasValue ? i.ExchangeRate.Value : 1) * i.Factor)
};