【发布时间】: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