Получить значение атрибута link-entity в FetchXML - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть следующий код:

    Entity account = service.Retrieve("account", ID, new ColumnSet(true));
    string name = (string)account.Attributes["name"];

        const string fetchXmlPattern =
        @"<fetch mapping='logical' version='1.0'>
            <entity name='account'>
                <attribute name='maintname' />
            <filter>
                <condition attribute='maintname' operator='eq' value='{0}' />
            </filter>
            <link-entity name='contact' from='contactid' to='primarycontactid' link-type='inner'>
                <attribute name='accountidname'/>
            </link-entity>
            </entity>
        </fetch>";

        string fetchXml = string.Format(fetchXmlPattern, name);

        var fetchExpression = new FetchExpression(fetchXml);
        EntityCollection response = service.RetrieveMultiple(fetchExpression);
        var records = response.Entities;

        List<Account> Accounts= new List<Account>();

        foreach (var item in records)
        {
            Account AccountFranchisee = new Account();
            AccountFranchisee.ID = (Guid)item.Attributes["accountid"];
            AccountFranchisee.Name = (string)item.Attributes["accountidname"];
            Accounts.Add(AccountFranchisee);
        }
        return Accounts;

Я получаю исключение Ключ не найден в этой строке:

AccountFranchisee.Name = (string)item.Attributes["accountidname"];

То есть он не может найти атрибут, который находится вссылка на сущность.Я попытался разместить псевдонимы, изменить шаблон, изменить синтаксис и несколько решений в Интернете и т. Д. Я потратил много часов на эту вещь, все еще не могу понять, что не так.

Как можноЯ получаю значение?

Спасибо!

...