繁体   English   中英

如何使用 JSON 处理具有“父子”关系的数据的 POST 调用

[英]How to handle POST call with JSON having data with “parent-child” relationship using ASP.NET Web API Entity Framework?

我有一个 JSON,其格式如下:

{
"header": {
"source_code": "S12345"
"user_id": "987456"
},
"body":{
"source_code": "S12345",
"wrapper_list": [
{
"item_wrapper_code": "WRAP01",
"item_amount": 10,
"item_type_amount": 2,
"creation_date": 20191115,
"worker": "W001",
"workstation_no": "1"
"item_list":[
{
"item_code": "I001"
"item_id": "",
"bar_code": "123987456"
"remark": ""
},
{
"item_code": "I002"
"item_id": "",
"bar_code": "213987456"
"remark": ""
}
]
}
]
}
}

上述 JSON object 的主体包含父子关系中的数据。

Parent: WRAP01
Child1: Item I001
Child2: Item I002

我必须能够解析这个 JSON object 并将这些详细信息作为行插入到相应的表中,即将父相关的内容插入父表,将子相关的内容插入子表。

我请求这里的专业人士来指导我。

因此,将 Json 解析为实体框架对象是不好的做法。

首先,创建将映射到 Json 的数据传输对象 (DTO)。 它就像:RequestDto、BodyDto、WrapperDto、WrapperItemDto。

要解析它,您可以使用类似 newtonsoft 的东西,请参见示例:https://www.newtonsoft.com/json/help/html/DeserializeObject.htm

然后您应该编写将映射到数据库表的 EntityFramework 对象。 我希望,您了解数据库理论并且已经阅读了一些关于 EntityFramework 以及它如何实现不同的数据库关系的文章。 如果没有,请阅读它。

你需要一对多的关系。 可以通过以下方式配置一对多关系。

  1. 通过遵循约定
  2. 通过使用 Fluent API 配置

您可以使用第一种方式。 它更容易。 所以你需要 2 个类:WrapperEntity、WrapperItemEntity。

然后,您应该编写将 WrapperDto 转换为 WrapperEntity 并将 WrapperItemDto 转换为 WrapperItemEntity 的代码。 然后将 *Entity 对象保存在数据库中。

这是实现此类逻辑的最佳实践。 我将其解释为顶级。 有关详细信息,您可以单独搜索每个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM