1

N:Nの関係を持つ2つのカスタムエンティティがあります。 1)メンバーシップ、2)オファープラグインの最初のエンティティとのn:n関係を持つ第2エンティティの複数のレコード(すべてのフィールドを含む)を取得する方法は、ms crm?

メンバーシップとオファーの形式でサブグリッドを使用して関連レコードを表示しました。

私は1つのメンバーシップエンティティレコードIDを入力として1つのプラグイン関数を作成しています。これは、出力エンティティのすべての関連レコードを出力として取得したいと考えています。 私は次のコードを試しましたが、関連する提供エンティティレコードを取得できませんでした。 = "new_membership"

entity1、entity2 = "new_offer"、relationshipEntityName = "new_new_membership_new_offer" 私はMS CRMに新しいですしたよう

public List<new_offer> getAllOffersFromMembership(string entity1,string entity2, string relationshipEntityName, string Id) 
{ 
    QueryExpression query = new QueryExpression(entity1);  
    query.ColumnSet = new ColumnSet(true);  

    LinkEntity linkEntity1 = new LinkEntity(entity1, relationshipEntityName, "new_membershipid","new_membershipid", JoinOperator.Inner);  
    LinkEntity linkEntity2 = new LinkEntity(relationshipEntityName, entity2, "new_offerid","new_offerid", JoinOperator.Inner); 
    linkEntity1.LinkEntities.Add(linkEntity2); 
    query.LinkEntities.Add(linkEntity1);   

    linkEntity2.LinkCriteria = new FilterExpression();  
    linkEntity2.LinkCriteria.AddCondition(new ConditionExpression(“new_membershipid”, ConditionOperator.Equal, Id)); 

    EntityCollection collRecords = service.RetrieveMultiple(query); 

    //To Do : Get offer entity records 
} 

、私はいくつかの愚かなミスをやっているかもしれません。

ありがとうございます。

+0

entity1、entity2、およびrelationshipEntityNameの論理名は何ですか? – dynamicallyCRM

+0

entity1 = new_membership、entity2 = new_offer、relationshipEntityName = "new_new_membership_new_offer" – Sagar

答えて

2

関連するレコードを取得するようにクエリを反転します。

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>(); 
+0

エンティティからラッパークラスを生成しました。だから、私はnew_offerクラスを持っています。私はnew_offerクラスのオブジェクトのリストを取得したい。応答からnew_offerオブジェクトを取得する方法をあなたの答えを更新してください。 ? – Sagar

+0

クエリを更新しました。 – dynamicallyCRM

関連する問題