asp.net mvc -多选-多对多- c#, EF savechanges()
本文关键字:EF savechanges net mvc 多选 asp | 更新日期: 2023-09-27 17:52:48
从这一行开始使用multiselect:mvc 4多选列表&EF多对多
当我试图将所有更改保存回上下文时,它们不保存,只保存博客数据而不保存类别。
唯一的出路是先保存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);
}
值被添加到blog Model ok,但不保存到数据库
代码没有显示对类别的任何更改。您正在查找数据库中已经存在的一个类别,并创建一个blog ->类别关联。根据您的关系映射,dbcontext不会检测到需要对categories表进行任何更改。