【问题标题】:How Can I Pull The Contacts Records from Salesforce in .NET Web API Connected Application如何在 .NET Web API 连接的应用程序中从 Salesforce 中提取联系人记录
【发布时间】:2017-11-05 18:13:45
【问题描述】:

我有一个连接的 Salesforce .NET Web Api 应用程序,我正在尝试显示该应用程序中的所有联系人。

public class ContactsController : ApiController
{
    public async Task<Models.Contact> Get()
    {
        var client = await SalesforceService.GetUserNamePasswordForceClientAsync();
        var contacts = await client.QueryAsync<Models.Contact>("SELECT id, FirstName, LastName, Email FROM Contact");
        var sfContact = contacts.Records;

        return sfContacts;
    }
}

我如何返回 sfContacts?

【问题讨论】:

  • 不清楚你在问什么,因为示例代码已经从 api 返回了联系人。
  • sfContacts 是 Generic List 类型,而 Task 是 Models.Contact 类型。我不确定我需要做什么。
  • 如果问题中没有解释,我们怎么知道。用问题来澄清问题,也许我们可以提供帮助。

标签: c# .net salesforce asp.net-web-api2


【解决方案1】:

更新控制器操作以返回 sfContacts 的类型。

例如

public class ContactsController : ApiController {
    public async Task<List<Models.Contact>> Get() {
        var client = await SalesforceService.GetUserNamePasswordForceClientAsync();
        var contacts = await client.QueryAsync<Models.Contact>("SELECT id, FirstName, LastName, Email FROM Contact");
        var sfContact = contacts.Records;

        return sfContacts;
    }
}

假设contacts.Records 返回List&lt;Models.Contact&gt;

或者更好的是使用ApiControllerIHttpActionResult抽象方法

public class ContactsController : ApiController {
    public async Task<IHttpActionResult> Get() {
        var client = await SalesforceService.GetUserNamePasswordForceClientAsync();
        var contacts = await client.QueryAsync<Models.Contact>("SELECT id, FirstName, LastName, Email FROM Contact");
        var sfContact = contacts.Records
                                .Select(c => new {
                                    c.id,
                                    c.FirstName,
                                    c.LastName,
                                    c.Email
                                });

        return Ok(sfContacts);
    }
}

框架将采用sfContacts,无论它是什么,并在响应中对其进行序列化。

【讨论】:

  • 谢谢他们都工作,但他们返回联系人中的所有内容,而不仅仅是我选择的内容(Id、FirstName、LastName、Email)。它只是说 。它会在我没有选择的字段中添加 I:nil="true"/> 或 false。
  • @LauraBejjani 显然。该对象将具有它的所有属性。他们只是不会都被填充。这就是对象的工作原理
  • 如何只返回我在select语句中选择的字段?
  • @LauraBejjani 检查更新。为了记录在案,您在这里并没有做太多帮助自己的事情。如果您没有进行任何研究,这 请给我 codz pls 不会在此站点上为您提供太多帮助。只是我对你以后提问时的看法。
  • 我尝试做一个 foreach 循环,最终给了我相同的结果。我是 linq 和 lamda 表达式的新手,所以我不知道。我并没有试图在没有研究的情况下获取代码。整个项目是我尝试从 Salesforce 中获取数据。我确实通过创建一个新的 Contact 类并将我想要的字段放在那里来让它工作,但你的解决方案要好得多。谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多