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

Dynamics crm 2011 如何独立于查询获取动态营销列表的成员,dynamics-crm-2011,late-binding,query-expressions,Dynamics Crm 2011,Late Binding,Query Expressions,我正在尝试获取动态营销列表中的成员列表。当只有一个(或只有几个)列表时,我可以单独获取底层查询的结果。然而,当营销列表的数量增加时,逐个获取变得非常无效 对于静态营销列表,我认为应该是直截了当的。在我的QueryExpression对象中过滤与基于联系人的所有营销列表相对应的一组GUID时,我应该能够获取实体联系人的所有实例(或用于创建实体联系人的任何基本类型)。这是正确的认识吗 (如何)获取服务器上所有动态列表的所有底层成员 编辑:这是自动生成的获取XML <fetch version

我正在尝试获取动态营销列表中的成员列表。当只有一个(或只有几个)列表时,我可以单独获取底层查询的结果。然而,当营销列表的数量增加时,逐个获取变得非常无效

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

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

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

好吧,组合FetchXML查询对于您的需求来说太难了(如果可能的话)(结果中没有不同的记录,并保留成员所属的营销列表的名称)。请注意,根据FetchXML查询只能针对一个根实体(如Account或Contact)运行,其他实体只能链接。由于数据库中的帐户和市场营销列表之间没有直接链接(而不是只有一个存储在DB中的FetchXML字符串),您将无法使用链接实体进行作业


假设您现在正在通过C代码进行操作,这实际上是一个很好的方法。它将使您能够更好地控制数据-您可以轻松地重新排列/组合/转换数据。我认为你不应该担心表现。一个接一个地执行多个提取xml所花费的时间不会比一个庞大的组合所花费的时间多。此外,如果您在C#中明智地实现集合操作,您可以获得相当好的性能。我真的不认为组合巨大的FetchXML会给性能带来任何好处,但只会给维护带来困难。

我没有处理过营销列表,这是一个单独的实体吗?你能写出你试图执行的等效SQL吗?@Daryl Yupp。它的模式名是list,它是一个用于营销的实体。它可以针对联系人、客户或潜在客户(可能还有系统用户)。这是一个真正的PIA。我的问题主要是动态类型,其成员由一个获取XML声明(是的,有一个实际的列存储愚蠢的字符串-它被称为查询)。现在,它迫使我对每个营销列表分别执行该字符串,这是不对的!(若你们好奇的话,你们可以在“市场营销”和“销售”中找到它。我在我的作品中添加了图片。)你们是从插件中获取的吗?您还可以从您的营销列表中提供一个获取XML的方法吗?@SergeyS Nope。我从Outlook的附加组件(VSTO)获取数据,但它使用与插件编码相同的SDK。我用于成员的提取XML是由CRM自动创建的。我已经把它作为我问题的更新发布了。@Konrad Viltersten-谢谢,但我想看看动态营销列表中使用的确切的获取xml。如果它们都遵循相同的格式,并且只有相关实体的名称在更改,那么您可以尝试编写一些例程,将所有这些获取合并到一个大的获取xml中。