【问题标题】:.Net Salesforce integration - getting column values from List<sObject>.Net Salesforce 集成 - 从 List<sObject> 获取列值
【发布时间】:2014-01-26 01:06:23
【问题描述】:

我们在 .Net 与 Salesforce.com 的集成中使用了合作伙伴 API。我正在使用以下代码将 Account 记录添加到字典中,并使用 ExternalId__c 作为每条记录的键。

public Dictionary<string, List<sObject>> getAccountMap(SalesforceConnection clientConn)
{
    Dictionary<string, List<sObject>> accountByMerchNum = new Dictionary<string, List<sObject>>();

    List<sObject> sObjRTypes = clientConn.performQuery("SELECT Id, ExternalId__c FROM Account");

    if (sObjRTypes != null && sObjRTypes.Count > 0)
    {
        sObject Account = sObjRTypes[0];
        foreach (XmlElement elem in Account.Any)
        {
            if (elem.LocalName.ToString() == "ExternalId__c")
            {
                if (accountByMerchNum.ContainsKey(elem.InnerText))
                {
                    accountByMerchNum[elem.InnerText].Add(Account);
                }
                else
                {
                    accountByMerchNum.Add(elem.InnerText, new List<sObject> { Account });
                }
            }
        }
    }
    return accountByMerchNum;
}

如何从 Dictionary> 中提取特定的列值?我猜它应该类似于以下内容......但到目前为止我的猜测是不正确的。

Dictionary<string, List<sObject>> accountDictionary = new Dictionary<string, List<sObject>>();
String tempId = accountDictionary[externalId].getId();

从这种类型的集合中提取特定列值的正确语法是什么?

【问题讨论】:

  • 您需要使用合作伙伴 API 的任何特殊原因?如果它不必与几个不同的 Salesforce 组织一起工作,那么使用企业版可能会简单得多。解析(使用)WSDL 将为您提供具有具体字段的 Account 或 Contact 等类,使用起来更简单。
  • 我们正在使用合作伙伴,因为正在处理的数据量很大。

标签: .net salesforce integration


【解决方案1】:

我在您的代码中看到了一些模棱两可的东西 -

  1. 您正在查询所有 Account 对象并只处理第一个。如果您是 只对某些对象感兴趣,为什么不在查询中提供谓词(WHERE 子句)?

  2. 您的字典值为List&lt;sObject&gt;。如果'ExternalId__c' 是一个唯一的自定义字段,您将始终为每个“ExternalId__c”值提供一个帐户对象。也许字典应该是字符串-> sObject。然后,您可以访问字典值并对其调用 sObject 方法。 dict[externalId].getId() 等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多