2012-09-13 34 views
5

我将自己置于服务器中,并检索了(希望)正确的一组数据。然后,我尝试按以下代码列出所有公司。查找从CRM Dynamics返回的实体中的所有属性的名称

EntityCollection result = proxy.RetrieveMultiple(expression); 
foreach (var entity in result.Entities) 
{ 
    String output = String.Empty; 
    if (entity.Attributes.Contains("account")) 
    output = entity.Attributes["account"].ToString(); 
} 

但是,它会是不错的运行一个内部循环,通过在result.Entities所有可用的属性去。我应该使用entity.Attributes.Keys还是有更好的方法?

回答

8

我认为这应该可以做到。

foreach (Entity entity in result.Entities) 
{ 
    foreach (KeyValuePair<String, Object> attribute in entity.Attributes) 
    { 
     Console.WriteLine(attribute.Key + ": " + attribute.Value); 
    } 
} 
+0

好吧,所以我走在了正确的轨道上。我担心从Dynamics获得的实体建议要以不同的方式处理。我也对你的例子做了一些小改动。 –

0

这使用Lambda表达式执行任务。

EntityCollection result = proxy.RetrieveMultiple(expression); 
foreach (var entity in result.Entities) 
{ 
    var vsHeaders = entity.Attributes.Select(kvp => string.Format("{0}", kvp.Key)); 
    string sHeaders = string.Join(",", vsHeaders); 
} 
相关问题