Dynamics crm 如何在ms crm插件中检索与第一个实体具有n:n关系的第二个实体的多条记录(包含所有字段)?

Dynamics crm 如何在ms crm插件中检索与第一个实体具有n:n关系的第二个实体的多条记录(包含所有字段)?,dynamics-crm,crm,microsoft-dynamics,dynamics-crm-online,dynamics-crm-2015,Dynamics Crm,Crm,Microsoft Dynamics,Dynamics Crm Online,Dynamics Crm 2015,我有两个具有N:N关系的自定义实体。 1) 会员资格,2)提供 我已经使用了subgrid的会员形式,并提供了相关记录 var query = new QueryExpression("new_offer"){ColumnSet = new ColumnSet(true)}; var offerLinkEntity = new LinkEntity("new_offer", "new_new_membership_new_offer","new_offerid", "new_offerid",

我有两个具有N:N关系的自定义实体。 1) 会员资格,2)提供

我已经使用了subgrid的会员形式,并提供了相关记录

var query = new QueryExpression("new_offer"){ColumnSet = new ColumnSet(true)};
var offerLinkEntity = new LinkEntity("new_offer", "new_new_membership_new_offer","new_offerid", "new_offerid", JoinOperator.Inner);

var memebershipLinkEntity = new LinkEntity("new_new_membership_new_offer", "new_membership","new_membershipid","new_membershipid", JoinOperator.Inner) {LinkCriteria = new FilterExpression()};

memebershipLinkEntity.LinkCriteria.AddCondition(new ConditionExpression("new_membershipid",ConditionOperator.Equal, mem.Id));

offerLinkEntity.LinkEntities.Add(memebershipLinkEntity);
query.LinkEntities.Add(offerLinkEntity);

var response = service.RetrieveMultiple(query);
var offers = response.Entities ?? Enumerable.Empty<new_offer>();
我正在编写一个插件函数,其中我有一个成员实体记录id作为输入,我想得到所有提供实体的相关记录作为输出。 我尝试了以下代码,但无法获取相关的报价实体记录

entity1=“新会员”,entity2=“新优惠”,relationshipEntityName=“新会员”

public List getAllOffersFromMembership(字符串entity1、字符串entity2、字符串关系EntityName、字符串Id)
{
QueryExpression query=新的QueryExpression(entity1);
query.ColumnSet=新列集(true);
LinkEntity linkEntity1=新的LinkEntity(entity1,relationshipEntityName,“新成员ID”,“新成员ID”,JoinOperator.Inner);
LinkEntity linkEntity2=新的LinkEntity(relationshipEntityName,entity2,“new\u offerid”,“new\u offerid”,JoinOperator.Inner);
linkEntity1.LinkEntitys.Add(linkEntity2);
query.linkenties.Add(linkEntity1);
linkEntity2.LinkCriteria=new FilterExpression();
linkEntity2.LinkCriteria.AddCondition(新条件表达式(“new_membershipid”,ConditionOperator.Equal,Id));
EntityCollection collRecords=service.RetrieveMultiple(查询);
//要执行的操作:获取报价实体记录
}
由于我是微软CRM的新手,可能是我犯了一些愚蠢的错误


提前感谢。

反转查询以获取相关记录

var query = new QueryExpression("new_offer"){ColumnSet = new ColumnSet(true)};
var offerLinkEntity = new LinkEntity("new_offer", "new_new_membership_new_offer","new_offerid", "new_offerid", JoinOperator.Inner);

var memebershipLinkEntity = new LinkEntity("new_new_membership_new_offer", "new_membership","new_membershipid","new_membershipid", JoinOperator.Inner) {LinkCriteria = new FilterExpression()};

memebershipLinkEntity.LinkCriteria.AddCondition(new ConditionExpression("new_membershipid",ConditionOperator.Equal, mem.Id));

offerLinkEntity.LinkEntities.Add(memebershipLinkEntity);
query.LinkEntities.Add(offerLinkEntity);

var response = service.RetrieveMultiple(query);
var offers = response.Entities ?? Enumerable.Empty<new_offer>();
var query=newqueryexpression(“new_offer”){ColumnSet=new ColumnSet(true)};
var offerLinkEntity=新的LinkEntity(“新要约”、“新要约”、“新要约”、“新要约”、“新要约”、JoinOperator.Inner);
var memebershipLinkEntity=new LinkEntity(“new\u new\u membership\u new\u offer”、“new\u membership”、“new\u membershipid”、“new\u membershipid”、JoinOperator.Inner){LinkCriteria=new FilterExpression();
membershipLinkEntity.LinkCriteria.AddCondition(新条件表达式(“新成员身份Id”,ConditionOperator.Equal,mem.Id));
offerLinkEntity.linkenties.Add(memebershipLinkEntity);
query.linkenties.Add(offerLinkEntity);
var response=service.RetrieveMultiple(查询);
var提供=响应。实体??Enumerable.Empty();

entity1、entity2和relationshipEntityName的逻辑名称是什么?entity1=new\u membership,entity2=new\u offer,relationshipEntityName=“new\u new\u membership\u new\u offer”我已经从实体生成了包装类。所以,我有一个新的课程。我想得到新的类的对象列表。你能更新你的答案吗?如何从回复中获得新的产品?已更新查询。