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を使用してみました。クエリにIsNullが含まれているため、Sumは苦労しました。

このクエリの変換にご協力いただければ幸いです。

リチャード

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 に答える