none
求助:如何用ListId获得ListMember表中的EntityId? RRS feed

  • 问题

  • 我尝试用以下代码获得CRM数据库中ListMember表中的EntityId。。却一直报错误。。请各位CRM达人帮我分析一下。。。

     

                //获取ListMembers实体集合
                Guid lsmGuid = new Guid(listid);

                QueryByAttribute qlsm = new QueryByAttribute();
                ColumnSet Qlsmcols = new ColumnSet();
                Qlsmcols.Attributes = new string[] { "entityid" };
                qlsm.ColumnSet = Qlsmcols;
                qlsm.EntityName = EntityName.listmember.ToString();
                qlsm.Attributes = new string[] { "listid" };
                qlsm.Values = new string[] {lsmGuid.ToString() };
                
                BusinessEntityCollection lsm = crmService.RetrieveMultiple(qlsm);

     

     

    相关CRM的WebService已经正确引用,但是最后一句BusinessEntityCollection lsm = crmService.RetrieveMultiple(qlsm)报错。。请各位帮我分析一下。。哪儿有问题。。。。如果各位有其他好的办法。。可以用C#语言。。通过ListId获得ListMember表中的Entityid的。。也希望不吝赐教。。

    2008年7月17日 9:13

答案

  • hi,ender1234

          有可能是ColumnSet问题,你用

    qlsm.ColumnSet = new AllColumns();

    替换掉下面三行

    ColumnSet Qlsmcols = new ColumnSet();
    Qlsmcols.Attributes = new string[] { "entityid" };

    qlsm.ColumnSet = Qlsmcols;

     

    或者用

    qlsm.Values = new object[] {lsmGuid };
    替换掉下面这行

    qlsm.Values = new string[] {lsmGuid.ToString() };

     

    Sorry,手头现在没有环境可以测试,你可以按上面的方法试试.如果还有问题,你可以catch异常的详细信息,再做进一步判断.

    try
    {
       BusinessEntityCollection lsm = crmService.RetrieveMultiple(qlsm);

    }
    catch(System.Web.Services.Protocols.SoapException ex)
    {
       Console.WriteLine(ex.Message + ". " + ex.Detail.InnerText);
    }

    2008年7月17日 15:08
    版主