1

我正在尝试将一些 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。

任何转换此查询的帮助将不胜感激!

理查德

4

1 回答 1

0

盲打(没有智能感知: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)
};
于 2010-11-23T11:36:23.613 回答