2012-09-13 11 views
5

Me metí en el servidor y recuperé (con suerte) el conjunto de datos correcto. Luego, intenté enumerar todas las compañías por el siguiente código.Averigüe los nombres de todos los atributos en una entidad devuelta por 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(); 
} 

Sin embargo, sería bueno para ejecutar un bucle interno que pasa por todos los atributos disponibles en result.Entities. ¿Debo usar entity.Attributes.Keys o hay un método mejor?

Respuesta

8

Creo que esto debería hacer el truco.

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

Bien, estaba en el camino correcto. Temía que la recomendación para entidades obtenida de Dynamics se manejara de una manera diferente. También hice un pequeño cambio en tu ejemplo. –

0

Esto lleva a cabo la tarea utilizando una expresión 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); 
} 
Cuestiones relacionadas