我想更新一個「發佈」並更改之前創建的「類別」的關係。郵政實體具有分類收集。但類別沒有改變。看起來,EF不跟蹤實體關係。順便說一下,我通過分配類別創建新文章沒有問題。ASP.NET MVC 3,實體框架4.更新與許多相關的實體
有兩種模式:
public class Post
{
public virtual int PostId { get; set; }
...
public virtual ICollection<Category> Categories { get; set; }
}
public class Category
{
public virtual int CategoryId { get; set; }
...
public virtual ICollection<Post> Posts { get; set; }
}
的添加控制器,即按預期工作:
public ActionResult Create(Post model)
{
var c = Request.Form["CategoryID"].Split(',');
model.Categories = c.Select ... .ToList(); //here I assign relationships with attached objects
_repository.Add(model);
_repository.SaveChanges();
...
}
庫添加方法:
T IRepository.Add<T>(T entity)
{
return Set<T>().Add(entity);
}
編輯器不會保存更改類別,只能張貼道具。
public ActionResult Edit(Post model)
{
var c = Request.Form["CategoryID"].Split(',');
model.Categories = c.Select ... .ToList(); //here I update relationships with attached objects
_repository.Attach(model);
_repository.SaveChanges();
...
}
庫編輯方法:
T IRepository.Attach<T>(T entity)
{
var entry = Entry(entity);
entry.State = System.Data.EntityState.Modified;
return entity;
}
難道我做錯了什麼?
在此先感謝