Microsoft CRM,如何使用CrmService获取列表的所有成员?

时间:2009-12-05 21:16:53

标签: .net web-services dynamics-crm dynamics-crm-4

我正在开发一个需要使用Web服务API从Microsoft CRM读取数据的工具。

我需要获得营销列表的所有成员。我可以使用webservice获取系统中的所有列表,但是我无法获得列表的成员。这是我到目前为止的查询,我可以运行,但它不会返回任何成员:

QueryExpression qe = new QueryExpression();
qe.EntityName = "contact";
qe.ColumnSet = new AllColumns();

var linkContact = new LinkEntity { 
    LinkFromEntityName = "contact", 
    LinkFromAttributeName = "contactid", 
    LinkToEntityName = "listmember",
    LinkToAttributeName = "entityid"
};  

var linkList = new LinkEntity {
    LinkFromEntityName = "listmember",
    LinkFromAttributeName = "entityid",
    LinkToEntityName = "list",
    LinkToAttributeName = "listid" };

var ce = new ConditionExpression
             {
                 AttributeName = "listid",
                 Operator = ConditionOperator.Equal,
                 Values = new object[] {list.listid.Value}
             };

linkList.LinkCriteria = new FilterExpression {Conditions = new[] {ce}};
linkContact.LinkEntities = new[] {linkList};
qe.LinkEntities = new [] {linkContact};
var members = service.RetrieveMultiple(qe);
Console.WriteLine("Members of {0}:", list.listname);
Assert.IsTrue(members.BusinessEntities.Any());

foreach(contact lead in members.BusinessEntities)
    Console.WriteLine(lead.fullname);

如何使用webservice API获取列表成员?

1 个答案:

答案 0 :(得分:3)

我猜你现在可能已经弄明白但是无论如何......

var linkList = new LinkEntity {
            LinkFromEntityName = "listmember",
            LinkFromAttributeName = "listid",
            LinkToEntityName = "list",
            LinkToAttributeName = "listid" };

相关行是:
LinkFromAttributeName =“listid”, 与“entityid”对比