gpt4 book ai didi

c# - 使用 .net WebAPI 创建、更新、删除子实体

转载 作者:行者123 更新时间:2023-11-30 22:15:11 26 4
gpt4 key购买 nike

要更新实体,我使用 http PUT,将更新后的对象作为请求主体传递:

PUT/api/flareform/3

{
"JobId" : "12-12-4004",
"Id" : 3,
"Tasks" : [
{
"Hazard" : "Clumsyness",
"Id" : 2,
"FlareFormId" : 3,
"Task" : "Hammering",
"Control" : "Make Someone Else Hold the Nail"
},
{
"Hazard" : "Nails",
"Id" : 3,
"FlareFormId" : 3,
"Task" : "Walking",
"Control" : "Keep area clean."
}
],
"PercentComplete" : null,
"Time" : "3pm",
"Initials" : "JD"
}

如果我更新对象的一个​​简单属性(例如 Initials),这会正常工作。是否可能/如何更新、添加、删除任务。可以通过这个对象来做吗?我想做的只是传递一个更新的任务数组并让它更新/删除/添加所有内容:

PUT/api/flareform/3

{
"JobId" : "12-12-4004",
"Id" : 3,
"Tasks" : [
{
"Hazard" : "NewAndImprovedValue",
"Id" : 2,
"FlareFormId" : 3,
"Task" : "NewAndImprovedValue",
"Control" : "NewAndImprovedValue"
},
{
"Hazard" : "SomeNewItemThatDidntExistBefore",
"FlareFormId" : 3,
"Task" : "NoteTheMissingId",
"Control" : "ShouldAddThisOne"
}
],
"PercentComplete" : null,
"Time" : "3pm",
"Initials" : "JD"
}

最佳答案

您的 Json 对象看起来没问题。我相信罪魁祸首是您的 DAL。保存子实体并不像人们想象的那么简单。

我假设您的 Tasks 与主对象处于一对多关系。如果是这样,您将需要手动检测任何更改(添加、删除或修改)并应用它们。

本教程应帮助您入门:http://www.entityframeworktutorial.net/update-one-to-many-entities-in-entity-framework.aspx

关于c# - 使用 .net WebAPI 创建、更新、删除子实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com