2
在我的ASP.NET MVC应用程序中,我使用单个视图来编辑实体和一些相关数据。当我将模型传递给控制器并将适当的实体标记为已修改时,相关实体不会在我的数据库中更新。这里是我的代码(简体版):如何更新EF中的相关实体(代码优先)
型号:
class A
{
public int ID { get; set; }
public B SomeProperty { get; set; }
public string AnotherProperty { get; set; }
public A()
{
SomeProperty = new B();
}
}
class B
{
public int ID { get; set; }
public string SomePropertyInClassB { get; set; }
}
控制器的方法:
public ActionResult Edit(A a)
{
if(ModelState.IsValid)
{
var aEntity = _context.Entry(a);
aEntity.State = EntityState.Modified;
_context.SaveChanges();
}
}
“AnotherProperty” 被更新,但 “SomePropertyInClassB” 不是。我已经尝试将以下代码添加到上述方法中:
var b = aEntity.Reference(a => a.SomeProperty).CurrentValue;
var bEntity = _context.Entry(b);
bEntity.State = EntityState.Modified;
但它不起作用。