[英]How to update related entities in EF (code first)
在我的ASP.NET MVC應用程序中,我使用單一視圖來編輯實體和一些相關數據。 當我將模型傳遞給控制器並將適當的實體標記為已修改時,相關實體不會在數據庫中更新。 這是我的代碼(簡化版):
模型:
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;
但這不起作用。
我想出了解決方案。
在控制器中:
public ActionResult Edit(A a)
{
if(ModelState.IsValid)
{
_context.Entry(a).State = EntityState.Modified;
_context.Entry(a.SomeProperty ).State = EntityState.Modified;
_context.SaveChanges();
}
}
...而且,在我看來,這對我而言並不那么明顯:
@Html.Hidden("SomeProperty.ID")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.