我试图改变一些SQL到LINQ到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。

任何转换这个查询的帮助,将不胜感激!

理查德

有帮助吗?

解决方案

打字盲(无智能感知: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)
};
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top