Domanda

Sto cercando di cambiare un po 'di SQL in LINQ to SQL, però ho la seguente riga in SQL che non so come convertire:

SUM(Quantity  * IsNull(ExchangeRate,1) * Factor ) 

Così ho finora scritto il Linq raggruppamento come segue:

        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

Ho pensato di utilizzare la parola chiave let, e cercò con grp.Sum hanno lottato come non c'è l'IsNull nella query.

Qualsiasi aiuto convertire questa query sarebbe molto apprezzato!

Richard

È stato utile?

Soluzione

Typing cieco (senza intellisense: D), ma il seguente dovrebbe funzionare:

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)
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top