【发布时间】:2019-01-09 14:57:33
【问题描述】:
我正在尝试使用 Entity Framework Core 更新 ASP.NET Core MVC 控制器中的 many-to-many 关系。我设法让它工作以添加到关系中,但没有更新(如果我只是打开/保存实体,则会导致重复键错误)。
如何在有效地更新/插入新关系之前从数据库中删除关系?
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,SalesClerkIds")] Plant plant)
{
if (id != plant.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
plant.SalesClerks = new List<PlantSalesClerk>();
if (plant.SalesClerkIds != null)
{
foreach (var scId in plant.SalesClerkIds)
{
plant.SalesClerks.Add(new PlantSalesClerk()
{
Plant = plant,
User = _context.Users.FirstOrDefault(u => u.Id == scId)
});
}
}
_context.Update(plant);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!PlantExists(plant.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(plant);
}
【问题讨论】:
标签: c# asp.net-core entity-framework-core