Web API2 PUT不更新多对多关系

时间:2017-01-24 00:33:38

标签: asp.net-web-api asp.net-web-api2 put

使用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对象可以解决问题,但它没有改变任何内容。

0 个答案:

没有答案