我正在尝试创建一个端点来获取“manualMaster”的ID并复制它&它的所有子节点都位于树之类的结构中,每个节点都有一个父节点,它们都与作为ManualMaster的主节点相关联。
以下是使用的模型
// GET/DUPLICATE: api/Manual/5
[Route("{id}")]
[HttpGet]
[ResponseType(typeof(ManualMaster))]
public async Task<IHttpActionResult> DuplicateManualMaster(int id)
{
ManualMaster manualMaster = await db.ManualMasters
.Include(i => i.Steps)
.FirstOrDefaultAsync(i => i.Id == id);
//
if (manualMaster == null)
{
return NotFound();
}
var dup = new ManualMaster
{
Brand = db.Brands.FirstOrDefault(i => i.Id == manualMaster.BrandId),
BrandId = manualMaster.BrandId,
//manualMaster.Id,
Name = manualMaster.Name,
Comment = manualMaster.Comment
};
foreach (var step in manualMaster.Steps)
{
var newStep = step;
newStep.Parent.Id = dup.Id;
db.ManualSteps.Add(newStep);
await db.SaveChangesAsync();
}
db.ManualMasters.Add(dup);
await db.SaveChangesAsync();
return Ok(dup);
}
然后是获取ID并尝试复制的端点。
newStep.Parent.Id = dup.Id;
我的问题是,目前在复制时,我将每个节点的id设置为主父ID,而不是创建树结构的各自ID。
{{1}}
因此,不是复制整个树,而是所有节点都具有相同的ID ......相反,我需要复制树结构当前的状态......