У меня есть проект MVC и я использую Entity Framework Code First и объекты POCO для базы данных. Например:
public class ClassA
{
public int? Id {get; set;}
public string Name { get; set;}
public virtual ClassB B {get; set;}
}
public class ClassB
{
public int? Id {get;set;}
public string Description {get;set;}
}
У меня есть ActionResult для создания или редактирования модели. Проблема в том, что когда я вызываю этот ActionResult для обновления модели и model.B
был изменен, отношение не сохраняется в базе данных. Когда ActionResult вызывается для создания нового объекта, он работает должным образом. Как мне решить эту проблему?
public ActionResult Save(ClassA model)
{
model.B = GetBFromDb(model.B.Id.Value);
if(ModelState.IsValid)
{
if (id.HasValue)
{
context.Entry(model).State = System.Data.EntityState.Modified;
}
else
{
context.ClassAs.Add(model);
}
context.SaveChanges();
// redirect to index etc.
}
return View("EditForm", model);
}