MSCRM各种类型的值如何进行存储一直是困扰我的问题, 也许是因为并没有认真研究的原因吧. 这不, 今天又遇到问题: CRM3.0提供的Web Service中, CrmDateTime类型并没有IsNull和IsNullSpecified两个属性, 这样的话, 如何将CrmDateTime类型的字段值设置为null呢? SDK上并没有针对这个问题的说明. 请看以下这段话:
Assigning Null Values
When you update an entity instance there is a mechanism in place to differentiate the absence of a value from a null value. To set an attribute value to null you must set both IsNull and IsNullSpecified to True. For attributes of type String, you must assign the value to String.Empty.
这是msdn上关于MSCRM类型的一段文字, 原文在此:http://technet.microsoft.com/en-us/library/aa685869.aspx. 这里基本上各种类型都介绍了, 独独没有提到CrmDateTime类型怎么处理. 说明MS在CRM这个产品上倾注的力量还是不够, 至少文档更新不是很及时. 怎么办?搜索结果继续往后翻, 耐心地查看, 终于被我找到结果: http://www.crm.microsoftproducts.net/%5C/How-to-update-crmdatetime-field-to-NULL_-40404.aspx. 原来只需要new一个CrmDateTime出来, 将它的value属性设置为null或者""即可. 如下:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
就是这么简单! 然而如果不试, 你又怎么能想到呢?
总结: MSCRM中各种类型的值, 如果在页面上进行清空的话(清空文本框), 实际将会保存成null. 如果采用代码设置为null, 则采用以上针对各种类型设置空值的处理办法.