2010-11-23 32 views
1

我试图改变一些SQL到LINQ到SQL中,但是我在SQL以下行,我不知道如何转换:ISNULL Linq中的总和语句内到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

打字盲人(不含智能感知: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) 
}; 
+0

这是完美的!没想到可以在Sums里面做条件感谢你的帮助! – Richard 2010-11-23 11:54:19