使用PUT
方法时,我的web api遇到了一些麻烦。它会更新FooBar
对象,但不会更新Bars
集合中的更改。我主要尝试从集合中添加和/或删除Bar
个对象。
这是我的两个班级
public class FooBar
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
public class Bar
{
public int Id { get; set; }
public string Name { get; set; }
[JsonIgnore]
public virtual ICollection<FooBar> FooBars { get; set; }
}
我已获得[JsonIgnore]
以避免JSON循环引用。
这是PUT
方法:
public IHttpActionResult PutBundle(FooBar fooBar)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
foreach (Bar b in fooBar.Bars)
{
db.Entry(b).State = EntityState.Modified;
}
db.Entry(fooBar).State = EntityState.Modified;
db.SaveChanges();
}
查看其他一些问题似乎将EntityState.Modified
添加到Bar
对象可以解决问题,但它没有改变任何内容。