0

相互に多対多の関係にある 2 つの異なるエンティティのフィールドを組み合わせた高度な検索を行いたいと考えています。SQL では非常に簡単ですが、Dynamics では行き詰まります。

一般的な回答を得たいのですが、それが役立つ場合は、ここに詳細があります。タスクは、DB 内のすべての連絡先のリスト (列「名前」と「電子メール」) を作成することです、問題の連絡先が属するマーケティング リストの名前である 3 番目の列と組み合わせます。もちろん、同じ人が複数回リストされる可能性がありますが、一意である必要はありません (さらに、各行には、連絡先の名前とマーケティング リストの組み合わせによって PK に相当するものがあります)。

それは可能ですか?もしそうなら、どのように?

4

1 に答える 1

2

まず、クエリは次のとおりです。

<fetch mapping='logical'>
    <entity name='listmember'>
        <link-entity name='list' from='listid' to='listid'>
            <attribute name='listname'/>
        </link-entity>
        <link-entity name='contact' from='contactid' to='entityid'>
            <attribute name='fullname'/>
            <attribute name='emailaddress1'/>
        </link-entity>
    </entity>
</fetch>

結果の例:

<resultset morerecords='0' paging-cookie='<cookie page="1"><listmemberid last="{E1B03485-0000-0000-0000-00155D107003}" first="{A74C877A-0000-0000-0000-00155D107003}" /></cookie>'>
    <result>
        <listmemberid>{A74C877A-0000-0000-0000-00155D107003}</listmemberid>
        <listid.listname>List 1</listid.listname>
        <entityid.fullname>Amy Pickle</entityid.fullname>
        <entityid.emailaddress1>apickle@domain.com</entityid.emailaddress1>
    </result>
    <result>
        <listmemberid>{A94C877A-0000-0000-0000-00155D107003}</listmemberid>
        <listid.listname>List 2</listid.listname>
        <entityid.fullname>Andrew Colley</entityid.fullname>
        <entityid.emailaddress1>colley@domain.com</entityid.emailaddress1>
    </result>
</resultset>

これを一般的な用語でどれだけうまく説明できるかわかりませんが、

  • リストのメンバーを探しているのでlistmember、返すルート エンティティである必要があります
  • 表示する属性を含むエンティティとの関係ごとに、 を定義する必要がありますlink-entity(この場合、1 つlistはリスト名を取得するためのもので、もう 1 つcontactは連絡先の詳細を取得するためのものです)。
  • 特定の のみを表示したいattributeので、それぞれをlink-entity
  • フィルタリングを指定しなかったため、連絡先であるすべてのリストのすべてのメンバーシップが返されます

これらを手作業で行うことはありません。以前は James Downey の FetchXML Builder を使用していましたが、これはもう利用できないと思います。Stunnwareは同様のツールを提供しています。

于 2012-09-13T11:25:46.300 に答える