Microsoft Dynamics CRM 2016, ошибка идентификатора бизнес-подразделения

Я пытаюсь запросить идентификатор бизнес-единицы с оборудования, но получаю сообщение об ошибке

QueryExpression qe = new QueryExpression();
qe.EntityName = "equipment";
qe.ColumnSet = new ColumnSet();
qe.ColumnSet.AddColumns("equipmentid", "name", "businessunitid");
qe.Criteria.AddCondition("name", ConditionOperator.Equal,EquipmentDropdown.Text);
EntityCollection resultequipments = _orgService.RetrieveMultiple(qe);
if(resultequipments.Entities.Count > 0)
{
   Equipmentid = (Guid)resultequipments.Entities[0]["equipmentid"];
   Buid = (Guid)resultequipments.Entities[0]["businessunitid"]; // error at this line
}

Кто-нибудь, пожалуйста, помогите Заранее спасибо


person Rahul J    schedule 27.04.2016    source источник
comment
Измените предпоследнюю строку следующим образом: Buid = ((EntityReference)resultequipments.Entities[0]["businessunitid"]).Id;   -  person Henk van Boeijen    schedule 27.04.2016


Ответы (2)


Если вы отлаживаете свой код, вы увидите, что атрибут businessunitid является EntityReference, а не Guid. Сделай это:

var entityRef = (EntityReference)resultequipments.Entities[0]["businessunitid"];
var Buid = entityRef.Id;
person Polshgiant    schedule 27.04.2016

вы должны сделать цикл для чтения entityCollection

        ConditionExpression condition = new ConditionExpression();
        condition.AttributeName = "name";
        condition.Operator = ConditionOperator.NotNull;
        condition.Values.Add(EquipmentDropdown.Text);

        ColumnSet columns = new ColumnSet("equipmentid", "name", "businessunitid");

        QueryExpression qe = new QueryExpression();
        qe.EntityName = "equipment";
        qe.ColumnSet = columns;

        EntityCollection resultequipments = _serviceProxy.RetrieveMultiple(qe);
        foreach(Entity r in resultequipments.Entities)
        {
                Console.WriteLine( r.Attributes["equipmentid"]);
                Console.WriteLine(r.Attributes["businessunitid"]); // error at this line
        }
                }
            }
person wildhawk    schedule 27.04.2016
comment
Нет, он все еще выдает ошибку, говорящую об исключении Invalid Cast, потому что в разделе значений у нас есть Microsoft.SDK. своего рода... так что его объект не может ввести тип cast. - person Rahul J; 27.04.2016