如何在C#中检查Money Field?

时间:2018-01-18 09:02:10

标签: c# asp.net-mvc dynamics-crm

我想在.net MVC网络服务中检查资金字段 如何null检查 我写这个,但我没有得到答案

//create module
public Money Amount { get; set; }

//Null Check
if ((EntityObject.Amount) != null)
{
    object Entity.Attributes.Add("budget amount", EntityObject.Amount);
}

我如何在Money字段写空检查?

2 个答案:

答案 0 :(得分:3)

Money是一种特殊的数据类型,您必须使用/sys/处理如下所示。

GetAttributeValue

答案 1 :(得分:2)

Entity.GetAttributeValue<T> Method (String)最好避免使用空值,但请注意,对于某些数据类型,它会返回Default values

http://www.crmanswers.net/2015/04/getattributevalue-demystified.html https://msdn.microsoft.com/en-us/library/gg326129.aspx

如果您使用的是Late bound Entity类,那么您可以执行以下操作:

if ((EntityObject.Attributes.Contains("youMoneyFieldName")
{
   decimal moneyInDecimal = ((Money)EntityObject["youMoneyFieldName"]).Value;
   object Entity.Attributes.Add("budget amount", new Money(moneyInDecimal));
}

在检查空值之前,请确保您已在查询中检索了属性,如下所示:

//检索包含多个属性的帐户。

ColumnSet cols = new ColumnSet(
    new String[] { "youMoneyFieldName" });

EntityObject retrievedEntity = (EntityObject)_serviceProxy.Retrieve("yourEntityName", GuidId, cols);

https://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.iorganizationservice.retrieve.aspx