Я хочу обновить сообщение и изменить отношения с уже созданными ранее категориями. Почтовый объект имеет ICollection категорий. Но категории не изменены. Кажется, что EF не отслеживает отношения сущностей. Кстати у меня нет проблем с созданием новых постов с присвоением категорий.
Есть две модели:
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; }
}
Контроллер Add, работающий должным образом:
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;
}
Я что-то не так делаю?
Заранее спасибо