16.06.2016, 12:39 | #1 |
Участник
|
Пакетной получение всех связей 1:N
Коллеги, приветствую.
Есть следующая задача. Имеется сущность контакт. У сущности есть несколько связей 1:М. Требуется максимально оптимальное решение (дотнет) для получения всех связанных объектов (гуидов) на текущий момент по этим связям. Моё решение (три связанных сущности new_sms, new_discountcard, new_order): Код: string fetch = @" <fetch count='50' > <entity name='contact' > <filter type='and' > <condition attribute='contactid' operator='eq' value='" + contactSlaveId + @"' /> </filter> <link-entity name='new_sms' from='new_contactid' to='contactid' link-type='outer' alias='sms' > <attribute name='new_smsid' /> </link-entity> <link-entity name='new_discountcard' from='new_contactid' to='contactid' link-type='outer' alias='card' > <attribute name='new_discountcardid' /> </link-entity> <link-entity name='new_order' from='new_contactid' to='contactid' link-type='outer' alias='order' > <attribute name='new_orderid' /> </link-entity> </entity> </fetch>"; EntityCollection result = Service.RetrieveMultiple(new FetchExpression(fetch)); var smsList = result.Entities.Select(x => x.GetAttributeValue<AliasedValue>("sms.new_smsid").Value).Distinct().ToList(); var cardList = result.Entities.Select(x => x.GetAttributeValue<AliasedValue>("card.new_discountcardid").Value).Distinct().ToList(); var orderList = result.Entities.Select(x => x.GetAttributeValue<AliasedValue>("order.new_orderid").Value).Distinct().ToList(); |
|