|
|
#1 |
|
Участник
|
Выбор записей 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); |
|
|
|
|
#2 |
|
Участник
|
Проблема в том что я не привязал к QueryExpression .. Вот тут как-то не понятно ..по логике должно получится что-то вроде
qe.LinkEntities.Add(link); qe.LinkEntities.Add(link2); Но мне выдает ошибку New_pmrequest' entity doesn't contain attribute with Name = 'new_pmsupreqid |
|
|
|
|
#3 |
|
Участник
|
Ещё..во всех примерах пишут такую конструкцию intersectEntity.LinkEntities = new LinkEntity[] { nestedLinkEntity }; ..Какого спрашивается? intersectEntity.LinkEntities readonly ошибка
|
|
|
|
|
#4 |
|
Участник
|
Похоже просто не с того конца пошел..все заработало..
Код: 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). | |
|
|
#5 |
|
Kostya Afendikov
|
Еще вариант с использование fetchXml, не помешает
http://mscrm-developer.blogspot.com/...r-many-to.html |
|
|
|
|
|