2

我在使用 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?或更好的方法来做到这一点>

谢谢

4

2 回答 2

1

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

于 2013-03-08T14:17:55.850 回答
-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);
      }
}

无论如何谢谢希望它可以帮助别人

于 2013-03-11T10:39:18.050 回答