Узнайте имена всех атрибутов в сущности, возвращенной из 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 или есть лучший способ?

2 ответов


Я думаю, что это следует сделать трюк.

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

Это выполняет задачу с использованием лямбда-выражения.

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);
}