多选 - 多对多 - C#,EF savechanges()

时间:2016-06-29 02:07:53

标签: c# asp.net-mvc entity-framework

使用multiselect从这一行开始: mvc 4 MultiSelect list & EF many to many

当我尝试将所有更改保存回他们不保存的上下文时,只有博客数据不是类别。

唯一的出路是首先保存Bind数据,创建一个新的上下文,然后保存列表。

关于替代方案的任何建议?

以下是未保存类别但从帖子中保存博客数据的控制器代码:

public ActionResult Edit(int id,Blog blog, int[] selectedCategories)
{

    blog.Categorys = new List<Category>(); //adding because coming back null

    //loop though and add the items posted
    foreach (var item in selectedCategories)
    {
    Category c = db.Categorys.Find(item);
    blog.Categorys.Add(c);
    }

    db.Blogs.Attach(blog);
    db.Entry(blog).State = EntityState.Modified;
    db.SaveChanges();

return View("Test", blog);
}

将值添加到博客模型确定中,但不会保存到数据库中。

1 个答案:

答案 0 :(得分:0)

代码未显示类别的任何更改。您正在查找数据库中已存在的类别并创建博客 - &gt;类别协会。根据您的关系映射,dbcontext不会检测到需要对类别表进行任何更改。

相关问题