Plugins 在CRM插件中将TSQL货币转换为十进制?

Plugins 在CRM插件中将TSQL货币转换为十进制?,plugins,crm,microsoft-dynamics,currency,Plugins,Crm,Microsoft Dynamics,Currency,这就是我的观点。正如Dynamics CRM所定义的那样,新的TotalAssets在tsql中定义为货币。我需要将它转换为十进制,这样我可以向它添加另一个值,并在tsql中更新该值。当我尝试对所有货币字段执行此操作时,出现了一个错误:操作数+不能应用于“Microsoft.Xrm.Sdk.money”和“Microsoft.Xrm.Sdk.money”类型的操作数。正确的方法是什么 Decimal TotA = decimal.Parse("0.0000"); Entity opp = ser

这就是我的观点。正如Dynamics CRM所定义的那样,新的TotalAssets在tsql中定义为货币。我需要将它转换为十进制,这样我可以向它添加另一个值,并在tsql中更新该值。当我尝试对所有货币字段执行此操作时,出现了一个错误:操作数+不能应用于“Microsoft.Xrm.Sdk.money”和“Microsoft.Xrm.Sdk.money”类型的操作数。正确的方法是什么

Decimal TotA = decimal.Parse("0.0000");
Entity opp = service.Retrieve("opportunity", Guid.Parse(oppid), new ColumnSet(new string[] { "new_totalassets" })); // no runtime error here

//TotA = (Decimal)opp.Attributes["new_totalassets"];                        // specified cast is not valid
//TotA = Convert.ToDecimal(opp.Attributes["new_totalassets"]);              // Unable to cast object of type 'Microsoft.Xrm.Sdk.Money' to type 'System.IConvertible'.
//TotA = Convert.ToDecimal(opp.Attributes["new_totalassets"].ToString());   // input string was not in a correct format
//TotA = Decimal.Parse(opp.Attributes["new_totalassets"].ToString());       // input string was not in a correct format

在总结数据之前,请尝试使用属性的.Value。像这样的,

decimal totalValue=((Money)opp.Attributes["new_totalassets"]).Value;
现在,根据需要将totalValue用于求和或任何其他操作

希望这有帮助

Convert.ToDecimal(opp.GetAttributeValue(item.Value));
Convert.ToDecimal(opp.GetAttributeValue<Money>(item).Value);

我确信我在开始跟踪错误之前也尝试过类似的行,但visual studio在键入错误后给出了一个初步错误,所以我甚至没有费心编译。不过后来就好了,非常感谢!