【发布时间】:2012-01-15 22:14:25
【问题描述】:
我有一个 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);
}
【问题讨论】:
标签: c# asp.net-mvc-3 entity-framework ef-code-first