2

私の CRM データベースには、m:n 関係でリンクされた 2 つのエンティティ グループ A と B があります。エンティティ B の複数のインスタンスにそれぞれリンクされたエンティティ A のインスタンスが多数あります。特定のエンティティについて、エンティティ A のインスタンスとしましょう。エンティティ B のリンクされたすべてのインスタンスを取得するにはどうすればよいですか?

var service = new OrganizationService(_connection);

var retrieveRequest = new RetrieveMultipleRequest();

retrieveRequest.Query = new QueryExpression
    {
        EntityName = "new_A",
        ColumnSet = new ColumnSet(true)
    }; 

var crmReponse = (RetrieveMultipleResponse)service.Execute(retrieveRequest); 

crmResponse をデバッグ モードで表示すると、エンティティ A のすべてのインスタンスが表示されますが、RelatedInstances プロパティ内には何も表示されません。私は何を間違っていますか?

編集:最初の回答を得た後、次のようにコードを調整しました。

var linkEntities = new LinkEntity { 

    LinkFromEntityName = "new_A",
    LinkToEntityName = "new_B"

};

var retrieveRequest = new RetrieveMultipleRequest();

var query = new QueryExpression
{
    EntityName = "new_A",
    ColumnSet = new ColumnSet(true)
};

query.LinkEntities.Add(linkEntities);

retrieveRequest.Query = query;

var crmReponse = (RetrieveMultipleResponse)service.Execute(retrieveRequest); 

ただし、エラーが発生します。

new_customer_system_machine_type と new_customer_system_machine_check の間にシステムの多対多の関係はありません。カスタムの多対多の関係を介してリンクしようとする場合は、from 属性と to 属性を必ず指定してください。

ただし、その多対多の関係を作成したとき、属性名を指定しませんでした。それは単にエンティティ間のものでした。私は何を間違っていますか?

また、私のRetrieveMultipleRequestクラスにはプロパティがありませんReturnDynamicEntities

4

2 に答える 2

1

LinkFromAttributeName と LinkToAttributeName を指定する必要があります。これらは、一致するキー値を含む from および to エンティティの属性になります。

于 2012-07-13T13:01:58.510 に答える
0

このブログ投稿で答えを見つけることができます。2 つの方法が説明されています。
- LinkEntityクラスを使用した RetrieveMultipleRequest 。 -フェッチ

于 2012-07-13T08:42:33.453 に答える