获取DateTime CRM 2011

时间:2013-03-08 09:34:53

标签: c# plugins dynamics-crm-2011 crm

我在使用DateTime时遇到了一些问题:使用Fetch

  <attribute name='new_startdate' groupby='true' dategrouping='day' alias='new_startdate' /> 
  <attribute name='new_enddate' groupby='true' dategrouping='day' alias='new_enddate' /> 
  <attribute name='new_duedate' groupby='true' dategrouping='day' alias='new_duedate' /> 

认为这有点不对......

  DateTime scheduledstart = ((DateTime)((AliasedValue)a["new_startdate"]).Value);
  tracer.Trace("DateTime 1 Done");
  DateTime enddate = ((DateTime)((AliasedValue)a["new_enddate"]).Value);
  tracer.Trace("DateTime 2 Done");
  DateTime scheduledend = ((DateTime)((AliasedValue)a["new_duedate"]).Value);

然后我添加到新的实体...

    if (scheduledstart != null)
    {
      Activity.Attributes.Add("scheduledstart", scheduledstart);
    }
    if (enddate != null)
    {
       Activity.Attributes.Add("scheduledend", enddate);
    }
    if (scheduledend != null)
    {
     Activity.Attributes.Add("scheduledend", scheduledend);
    }

任何想法如何使用来自fetch的AliasedValue编写DateTime?或者更好的方法来做这个&gt;

由于

2 个答案:

答案 0 :(得分:1)

我曾经讨厌处理别名值,但后来我写了一些扩展方法,现在我不再担心它们了。查看我的博客Simplifying Retrieval of Aliased Values in CRM 2011。我认为它将有助于解决您当前的问题。

答案 1 :(得分:-1)

感谢您的帮助,我决定只使用单独的日期值获取

string Date_Gather = string.Format(@"         
      <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
         <entity name='new_import'>                       
                 <attribute name='new_enddate'/>         
         </entity>
       </fetch>", entity.Id);

foreach (var b in Date_Gather_result.Entities)
{

   if (b.Attributes.Contains("new_enddate"))
      {
          enddate = ((DateTime)(b["new_enddate"]));
          Entity.Attributes.Add("scheduledend", enddate);
      }
}

非常感谢希望它能帮助别人