2012-09-13 6 views
5

Dostałem się do serwera i mam nadzieję (mam nadzieję) uzyskać prawidłowy zestaw danych. Następnie próbowałem wyświetlić listę wszystkich firm według następującego kodu.Dowiedz się nazwy wszystkich atrybutów w jednostce zwróconej z 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(); 
} 

jednak, że byłoby miło, aby uruchomić wewnętrzną pętlę, która przechodzi przez wszystkie dostępne atrybuty w result.Entities. Czy powinienem używać entity.Attributes.Keys lub czy istnieje lepsza metoda?

Odpowiedz

8

Myślę, że powinno to wystarczyć.

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

OK, więc byłem na dobrej drodze. Obawiałem się, że zalecenie podmiotów otrzymanych z Dynamics powinno być traktowane w inny sposób. Wprowadziłem też niewielką zmianę do twojego przykładu. –

0

Wykonuje zadanie za pomocą wyrażenia 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); 
}