2012-09-13 35 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); 
} 
相關問題