如何独立于查询获取动态营销列表的成员

时间:2013-01-14 10:24:24

标签: dynamics-crm-2011 late-binding query-expressions

我正在尝试获取动态营销列表的成员列表。当它只是一个(或只是几个)列表时,我可以单独获取基础查询的结果。但是,当营销清单的数量增加时,逐个提取变得非常无效。

对于静态营销列表,我希望它应该是直截了当的。我应该能够在基于联系人过滤一组与所有营销列表相对应的guid时,获取实体 Contact 的所有实例(或者用于创建它的任何基本类型) QueryExpression 对象中的。这是正确的感知吗?

(如何)我可以获取服务器上所有动态列表的所有底层成员吗?

enter image description here

编辑:这是自动生成的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>

1 个答案:

答案 0 :(得分:1)

好吧,结合FetchXML查询对于您的要求来说太难了(如果可能的话)(结果中的非独特记录以及保留成员所属的营销列表的名称)。请注意,根据documentation,FetchXML查询只能针对一个根实体(比如帐户或联系人)运行,其他实体只能链接。由于您在数据库中的帐户和市场营销列表之间没有直接链接(而不是您只有一个存储在数据库中的FetchXML字符串),您将无法使用链接实体来完成工作。

假设您现在通过C#代码执行此操作 - 这实际上是好的方法。它可以让您更好地控制数据 - 您可以轻松地重新排列/组合/转换。我认为你不应该担心性能。逐个执行的几个fetch xml不会花费太多时间,而不是一个巨大的组合可能需要的时间。此外,如果您在C#中明智地实现集合操作,您可以获得相当不错的性能。我真的不认为组合庞大的FetchXML会带来任何性能上的好处,但只有难以维护。