AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2010, 01:41   #1  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Выбор записей Many-To-Many
Есть две сущности "new_pmrequest"и "new_pmsupreq" ..они между собой связаны Many-To-Many связью "new_new_pmrequest_new_pmsupreqmany". Задача выбрать new_pmrequest который когда-то был ассоциирован с "new_pmsupreq". В списке связанных с ним сущностей я его вижу,но программно получить не получается.. Вот написал такую штуку..

Код:
QueryExpression qe = new QueryExpression();
        qe.EntityName = "new_pmrequest";
        qe.ColumnSet = new AllColumns();

        LinkEntity link = new LinkEntity();
        link.LinkFromEntityName = "new_pmsupreq";
        link.LinkFromAttributeName = "new_pmsupreqid";
        link.LinkToEntityName = "new_new_pmrequest_new_pmsupreqmany";
        link.LinkToAttributeName = "new_pmsupreqid";

        LinkEntity link2 = new LinkEntity();
        link2.LinkFromEntityName = "new_new_pmrequest_new_pmsupreqmany";
        link2.LinkFromAttributeName = "new_pmrequestid";
        link2.LinkToEntityName = "new_pmrequest";
        link2.LinkToAttributeName = "new_pmrequestid";

        ConditionExpression condition = new ConditionExpression();
        condition.AttributeName = "new_pmsupreqid";
        condition.Operator = ConditionOperator.Equal;
        condition.Values = new object[] { "16895420-12EC-DF11-BD73-00155D8E4B06" };
        link.LinkCriteria.FilterOperator = LogicalOperator.And;
        link.LinkCriteria.Conditions.Add(condition);

        // Add the from and to links to the query.
        link2.LinkEntities.Add(link);

        RetrieveMultipleRequest request = new RetrieveMultipleRequest();
        request.Query = qe;
        request.ReturnDynamicEntities = true;
        RetrieveMultipleResponse response = (RetrieveMultipleResponse)crmService.Execute(request);
Результатом являются все значения new_pmrequest..которые и отношения к new_pmsupreq с ИД "16895420-12EC-DF11-BD73-00155D8E4B06" не имеют.. Что за батва такая? Может не правильно кулему эту написал?
Старый 10.11.2010, 09:53   #2  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Проблема в том что я не привязал к QueryExpression .. Вот тут как-то не понятно ..по логике должно получится что-то вроде
qe.LinkEntities.Add(link);
qe.LinkEntities.Add(link2);

Но мне выдает ошибку New_pmrequest' entity doesn't contain attribute with Name = 'new_pmsupreqid
Старый 10.11.2010, 10:17   #3  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Ещё..во всех примерах пишут такую конструкцию intersectEntity.LinkEntities = new LinkEntity[] { nestedLinkEntity }; ..Какого спрашивается? intersectEntity.LinkEntities readonly ошибка
Старый 10.11.2010, 10:33   #4  
Kipetcoff is offline
Kipetcoff
Участник
 
136 / 16 (1) ++
Регистрация: 20.05.2009
Адрес: Санкт-Петербург
Похоже просто не с того конца пошел..все заработало..

Код:
QueryExpression query = new QueryExpression();
        query.EntityName = "new_pmrequest";
        query.ColumnSet = new AllColumns();
        //query.ColumnSet = new ColumnSet();
        //query.ColumnSet.AddColumn("new_pmrequestid");

        // Configure the links
        LinkEntity linkEntity1 = new LinkEntity();
        linkEntity1.LinkFromEntityName = "new_pmrequest";
        linkEntity1.LinkFromAttributeName = "new_pmrequestid";
        linkEntity1.LinkToEntityName = "new_new_pmrequest_new_pmsupreqmany";
        linkEntity1.LinkToAttributeName = "new_pmrequestid";

        LinkEntity linkEntity2 = new LinkEntity();
        linkEntity2.LinkFromEntityName = "new_new_pmrequest_new_pmsupreqmany";
        linkEntity2.LinkFromAttributeName = "new_pmsupreqid";
        linkEntity2.LinkToEntityName = "new_pmsupreq";
        linkEntity2.LinkToAttributeName = "new_pmsupreqid";

        // Create the condition to test the contractid
        ConditionExpression condition = new ConditionExpression();
        condition.AttributeName = "new_pmsupreqid";
        condition.Operator = ConditionOperator.Equal;
        condition.Values = new object[] { "16895420-12EC-DF11-BD73-00155D8E4B06" };

        // Add the condition to the link
        linkEntity2.LinkCriteria = new FilterExpression();
        linkEntity2.LinkCriteria.AddCondition(condition);

        // Add the links to the query

        linkEntity1.LinkEntities.Add( linkEntity2 );
        query.LinkEntities.Add( linkEntity1 );

        // Configure the retrieve object

        RetrieveMultipleRequest retrieve = new RetrieveMultipleRequest();
        retrieve.ReturnDynamicEntities = true;
        retrieve.Query = query;

        // Execute retrieve
        RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse)crmService.Execute(retrieve);
За это сообщение автора поблагодарили: Bondonello (3).
Старый 10.11.2010, 11:30   #5  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Еще вариант с использование fetchXml, не помешает
http://mscrm-developer.blogspot.com/...r-many-to.html
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
При слиянии записей-дубликатов выскакивает ошибка о "циклической ссылке" Bakai Madybaev Dynamics CRM: Функционал 11 20.12.2011 22:59
Создание группы записей Tarasov E Dynamics CRM: Разработка 8 23.06.2010 11:19
Мелкомягкий CRM: Отображение неактивных записей в стандартных представлениях Blog bot Dynamics CRM: Blogs 8 20.08.2009 10:43
Все о Microsoft Dynamics CRM: Включение неактивных записей в результат Быстрого поиска (Quick Find) в Microsoft Dynamics CRM 4.0 Blog bot Dynamics CRM: Blogs 0 26.07.2009 22:06
Фильтр для отчета - из списка связанных записей? AlekseyS Dynamics CRM: Разработка 3 11.09.2008 10:54

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:00.