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();
我正在将 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();