嵌套對象永遠不會更新下面的錯誤是什麼?EntityFramework嵌套對象更新
[Route("api/branches/{id}/devices")]
public async Task<IHttpActionResult> PutDevice(int id, Device device)
{
Branch branch = await db.Branches.Include("devices").FirstAsync(b => b.id == id);
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (branch == null)
{
return NotFound();
}
device.branch = branch;
try
{
await db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!BranchExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
我只是傳遞設備對象和分支ID。我所要做的就是更新設備的分支......但是,這個值永遠不會改變。
我錯過了什麼?
Device.cs
public class Device
{
public Device()
{
date_created = DateTime.UtcNow;
}
[Key]
public int id { get; set; }
public string name { get; set; }
public virtual Branch branch { get; set; }
public int branch_id { get; set; }
是不是'Device'只是一個視圖模型在這裏?我沒有看到被跟蹤的實體在哪裏... –
@RonBeyer請檢查編輯。 – user1027620
我明白了,但它是如何進入控制器的呢?如果從視圖加載的視圖充當視圖模型,那麼當您使用設備中的Id加載另一個跟蹤的實體時,會發生什麼情況,分配其分支,然後保存它?我猜測傳入的實體沒有被跟蹤。 –