【发布时间】:2015-01-06 17:04:52
【问题描述】:
我是 Salesforce 开发的新手,并试图弄清楚 SOQL 的东西。长期倾听,第一次来电。
我正在对 ActivityHistories 运行 SOQL 查询,并尝试将其作为自定义对象获取。我需要这样做,以便将数据绑定到 ASP.Net 数据网格。不幸的是,dynamic 类型不适用于我,因为我无法将它绑定到网格。
这是我的查询:
var activities = await client.QueryAsync<Activity>(@"SELECT (SELECT ActivityDate, Description
FROM ActivityHistories
ORDER BY ActivityDate DESC NULLS LAST, LastModifiedDate DESC LIMIT 500)
FROM Account
WHERE Id = '" + SalesforceId + "' LIMIT 1");
这是我要使用的自定义数据类型
public class Activity
{
public DateTime ActivityDate { get; set; }
public string Description { get; set; }
}
当我运行这个请求并将 activities.records 绑定到数据网格时,我根本没有得到任何数据。列的标题出现,但我没有得到任何应该存在的记录。即使调试也没有提供任何额外的信息,它看起来就像我得到了一个空白对象。但是,当我运行相同的查询并将 Activity 替换为 dynamic 时,我会得到一大堆 Json,其中包含我正在寻找的所有内容。
起初,我认为反序列化到我的自定义对象可能是问题,但我用 Opportunity 做了一个非常相似的事情,它工作得很好,自动转换为那个自定义对象。这让我相信我正在错误地处理内部查询的某些事情,我将非常感谢任何方向。
以下是我阅读并尝试过的内容的简短摘要:
- http://www.salesforce.com/developer/docs/api/Content/sforce_api_objects_activityhistory.htm
- https://salesforce.stackexchange.com/questions/48800/getting-object-type-not-accessible-error/56513#56513
- Salesforce Apex - Populating an object from SOQL query
- 尝试在 Activity 中填写更多字段以与来自查询的内容相对应
- 尝试调整字段类型以与 Activity 对应或不对应
- 通用 Google 搜索与将动态类型转换为强类型相关的任何内容(结果不佳)
- 在查询中请求不同的、变化的字段,但最终落在这两个上,因为这些是 Salesforce 文档中的字段(上面的链接 1)
提前谢谢你!
【问题讨论】:
标签: c# salesforce soql