用于将 JSON 数组映射到 C# / ASP .Net Core 中的 DTO 的最佳数据类型
Best data type to use to map JSON arrays to DTOs in C# / ASP .Net Core
这可能是个愚蠢的问题,但我想知道以下问题:
我有一个 .Net 5 Web API,我想在其中创建一个 DTO 来接受来自前端的 POST 请求。
POST 请求中的正文包含以下 JSON:
{
"aComment": "This is a text field",
"aNumber": 5,
"anArray": [1, 2, 3, 4, 5]
}
在控制器中,我有一个将接收此请求并将其映射到 DTO(“SomeDto”)的操作方法:
[HttpPost]
public async Task<ActionResult<SomeDto>> Post()
{
// Some code
}
对于 JSON 整数数组,在 DTO 中使用的最佳数据类型是什么?
* int[]
* ICollection<int>
* IEnumerable<int>
* List<int>
我倾向于 ICollection 或 IEnumerable,因为它们比 List 更轻。但我想 int[] 也可以很好地工作?
编辑:
我看到 .Net Core 在构建现有数据库时会创建 ICollection 类型的集合,并在 class 构造函数中对其进行初始化。示例:
public class SomeModel
{
public SomeModel()
{
Accounts = new HashSet<Account>();
}
public int? Id { get; set; }
public virtual ICollection<Account> Accounts { get; set; }
}
也许我也应该使用 ICollection?尽管在上面的脚手架示例中,集合的类型是“Account”(即一个对象)。不确定这是否也适合原始类型(如 Integer)的简单集合?
这里使用dynamic
public 异步任务动态>> Post()
这可能是个愚蠢的问题,但我想知道以下问题: 我有一个 .Net 5 Web API,我想在其中创建一个 DTO 来接受来自前端的 POST 请求。 POST 请求中的正文包含以下 JSON:
{
"aComment": "This is a text field",
"aNumber": 5,
"anArray": [1, 2, 3, 4, 5]
}
在控制器中,我有一个将接收此请求并将其映射到 DTO(“SomeDto”)的操作方法:
[HttpPost]
public async Task<ActionResult<SomeDto>> Post()
{
// Some code
}
对于 JSON 整数数组,在 DTO 中使用的最佳数据类型是什么?
* int[]
* ICollection<int>
* IEnumerable<int>
* List<int>
我倾向于 ICollection 或 IEnumerable,因为它们比 List 更轻。但我想 int[] 也可以很好地工作?
编辑:
我看到 .Net Core 在构建现有数据库时会创建 ICollection 类型的集合,并在 class 构造函数中对其进行初始化。示例:
public class SomeModel
{
public SomeModel()
{
Accounts = new HashSet<Account>();
}
public int? Id { get; set; }
public virtual ICollection<Account> Accounts { get; set; }
}
也许我也应该使用 ICollection?尽管在上面的脚手架示例中,集合的类型是“Account”(即一个对象)。不确定这是否也适合原始类型(如 Integer)的简单集合?
这里使用dynamic
public 异步任务