0

動的なマーケティング リストのメンバーのリストを取得しようとしています。リストが 1 つ (または数個) しかない場合は、基になるクエリの結果を個別に取得できます。ただし、マーケティング リストの数が増えると、1 つずつ取得するのはまったく効果がなくなります。

静的なマーケティング リストの場合、それは簡単なはずです。QueryExpressionオブジェクトのContactに基づいて、すべてのマーケティング リストに対応する一連の GUID をフィルター処理するときに、エンティティContactのすべてのインスタンス (またはその作成に使用される基本型が何であれ) をフェッチできる必要があります。それは正しく認識されていますか?

(どのように) サーバー上のすべての動的リストの基になるすべてのメンバーを取得できますか?

ここに画像の説明を入力

編集: これは自動生成された fetch-XML です。

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="account">
    <attribute name="name" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
  </entity>
</fetch>
4

1 に答える 1

1

ええと、FetchXMLクエリを組み合わせるのは、要件(結果に不明瞭なレコードがあり、メンバーが属するマーケティングリストの名前を保持している場合)には(可能であれば)難しすぎるでしょう。ドキュメントによると、FetchXMLクエリは1つのルートエンティティ(アカウントや連絡先など)に対してのみ実行でき、他のエンティティはリンクすることしかできないことに注意してください。データベース内のアカウントとマーケティングリストの間に直接リンクがないため(DBに保存されているFetchXML文字列だけではなく)、ジョブにリンクエンティティを使用することはできません。

あなたが今C#コードを介してそれをしていると仮定すると-これは実際に行くのに良い方法です。それはあなたにあなたのデータのより多くの制御を与えるでしょう-あなたは簡単に再配置/結合/変換することができます。パフォーマンスを気にする必要はないと思います。1つずつ実行される複数のフェッチxmlは、巨大な結合されたxmlが潜在的にかかる可能性があるよりもはるかに長い時間はかかりません。また、コレクション操作をC#で賢く実装すると、かなり良いパフォーマンスを実現できます。巨大なFetchXMLを組み合わせるとパフォーマンスが向上するとは思いませんが、維持するのが難しいだけです。

于 2013-01-15T16:08:51.477 に答える