EntityFramework 与 WEB API,更新所有属性

EntityFramework with WEB API, update all properties

我正在将 EF 与 WEB API 结合使用。 我有一个 PUT 方法,它更新一个已经在数据库中的实体。 现在我有这个:

        // PUT api/fleet/5
        public void Put(Fleet fleet)
        {
            Fleet dbFleet = db.Fleets.Find(fleet.FleetId);
            dbFleet.Name = fleet.Name;
            dbFleet.xy= fleet.xy;
            //and so on....
            db.SaveChanges();
        }

但是我很懒,只想写这样的东西:

dbFleet.update(fleet);

所以我不必单独更新每个 属性。

我确定有办法,但我只能找到有关如何使用 MVC 执行此操作的答案,但在使用 WEB API 且未收到模型状态时找不到答案。

谢谢

刚刚找到答案...

// PUT api/fleet/5
public void Put(Fleet fleet)
{
    db.Entry(fleet).State = EntityState.Modified;
    db.SaveChanges();
}

唯一让我不满意的是它不更新子对象。 Fleet 具有 FleetAttributes,它们不会像这样更新。但我想我可以轻松地循环播放它们...

编辑这对我有用:

// PUT api/fleet/5
public void Put(Fleet fleet)
{
    db.Entry(fleet).State = EntityState.Modified;
    foreach (var item in fleet.FleetAttributes)
    {
        db.Entry(item).State = EntityState.Modified;
    }
    db.SaveChanges();
}
db.Fleets.Attach(fleet);
db.Entry(fleet).State = EntityState.Modified;
db.SaveChanges();