2010-11-23 2 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 

Я думал об использовании выпускаемого ключевого слова, и попытался с помощью grp.Sum боролся, как есть в IsNull в запросе.

Любая помощь в преобразовании этого запроса будет принята с благодарностью!

Ричард

ответ

0

Typing слепой (без 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) 
}; 
+0

Это прекрасно! Не думал, что можно делать условия внутри Сумм и т. Д. Спасибо за помощь! – Richard 2010-11-23 11:54:19

Смежные вопросы