sql >> Databasteknik >  >> NoSQL >> MongoDB

c# mongodb-drivrutin hur man kastar ett mongo-dubbelvärde till ett c#-decimalt

Det bästa alternativet skulle förmodligen gå med detta:

monto = document["monto"].ToDecimal();

Anledningen till att detta fungerar så bra är att det abstrakta BsonValue type implementerar en metod som ser ut så här:

public virtual decimal ToDecimal()

De konkreta implementeringarna av BsonValue (t.ex. BsonInt32 , BsonInt64 , BsonDouble etc.) åsidosätt denna medlem med metoden nedan som ger dig exakt vad du vill ha, oavsett om föraren deserialiserar en int, en long eller en dubbel från ett lagrat dokument:

public override decimal ToDecimal()
{
    return (decimal)_value;
}

Alternativt, i ditt specifika fall (och om alla dokument i omfattning har en int lagrad i deras "monto"-fält) kan du helt enkelt skriva:

monto = Convert.ToDecimal(document["monto"].AsInt32)

eller till och med bara

monto = (decimal)(document["monto"].AsInt32)

som är semantiskt identiska.



  1. Modellera undersamlingar i MongoDB Realm Sync

  2. Ringer Redis zuunionstore från Lua med variabla NYCKLAR

  3. MongoDB Schema Design - Realtidschatt

  4. hur fungerar Mongodb index?