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;
但它不起作用。