1.??的使用,就是判断值是否为null,为null的话,给赋初值,否则就直接取值。
decimal new_amount = 0;
if (targetEntity.Contains("字段1"))
{//?? 判断(targetEntity["字段1"] as Money为null的话,赋值为0
new_amount = (targetEntity["字段1"] as Money ?? newMoney(0M)).Value;
}
注:字段1为货币(Money)类型。
2. 一般从Targt 中取值,必须先判断是否存在,然后在判断不为null.不然会报错,因为字段1有可能不在Target里面,意思
targetEntity.Contains("字段1")为False,那么直接写targetEntity["字段1"] != null,就会报错。不信,大家可以试试。
decimal new_amount = 0;
if (targetEntity.Contains("字段1") && targetEntity["字段1"] != null)
{
new_amount= (targetEntity["字段1"] asMoney).Value;
}
而不能if (targetEntity["字段1"] != null && targetEntity.Contains("字段1"))
{
new_amount= (targetEntity["字段1"] asMoney).Value;
}
注:字段1为货币(Money)类型。
3.可以将Entity取出的字段放在AttributeCollection 属性集合中去,然后可以直接从这个属性集合中取值。
///
///获取属性集合///
/// Entity
/// 返回属性集合
publicAttributeCollection GetTriggerData(Entity dataEntity)
{
AttributeCollection parames= newAttributeCollection();if (dataEntity != null)
{
//先将字段放在一个字符串数组中string[] arrayStr = { "new_actiontype","new_po_status", "new_sort","new_detailitem","new_costfrom","new_bgcontrolperiod"};
//foreache 循环判断,把dataEntity的索引赋给parames中去。foreach (va