【问题标题】:How to get the result of an API call in a single class?如何在单个类中获取 API 调用的结果?
【发布时间】:2021-06-22 16:07:43
【问题描述】:

我有两个类是调用 API 的结果:

{
 public int ID {get;set;}
 public string name {get;set;}
 public address address {get;set;}
}

public class address
{
 public class address1 {get;set;}
 public class address2 {get;set;}
 public class city {get;set;}
}

我也有这段代码在客户中存储 API 调用:

var customers = GetCustomers(bearerToken);

和数据库插入:

connection.Execute("dbo.Insert_Customer @ID, @Name", customers);

我遇到的问题(我是 C sharp 和 API 的新手),我试图在一个层面上获取客户的内容。

但是,地址有两个 - 内容是Address.Address1Address.Address2

由于 API,我无法以这种方式编写类。

有什么办法可以重写。

我知道我需要另一个列表,但不知道从哪里开始。

最终这些数据将存储在数据库中,因此需要全部存储在一个级别上。

希望以上所有内容都有意义。

非常感谢。

【问题讨论】:

  • 请提供有关 GetCustomers 方法返回的信息。此外,由于安全问题,我建议您使用实体框架,因为您可能会面临 SQL 注入攻击
  • 您的地址类中似乎有拼写错误。 address1、address2 和 city 都是字符串,对吗? “我试图在一个层面上获取客户的内容”是什么意思?
  • GetCustomers 连接到 API 并拉入上面显示的两个类的响应,因此它们可能是返回值,例如 Id=12、name=“joe smith”、address=“address contents” (地址 1 =“101 街”,地址 2 =“平面”,城市 =“伦敦”)。在客户对象中它是这样存储的,但是当我保存到 db 以获取地址时,它会存储地址内容。我需要它来像其他字段一样单独保存地址 1、城市。所以说是两个层次。只是想通过 list 查看是否有办法让我重新执行此操作?!

标签: c# api


【解决方案1】:

如果你说你想在同一级别有一个 Id、Name、Address1、Address2 和 city 的单一类型,以便你可以将它们全部传递给数据库中的存储过程,那么你可以使用 Linq 来创建一个动态对象,其中包含两个类中的每一个的数据,如下所示 -> Linq select to new object

【讨论】:

  • 感谢我最终使用了 Linq,您帮助我获得了这方面的知识。非常感谢
猜你喜欢
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多