是否將父實體再次附加到上下文並更新它應該更新子實體?我錯過了什麼嗎?更新父實體不更新子實體
或者我是否應該爲子實體編寫更新EF邏輯(在DAL中)?
這是我的示例代碼模型:
ChildEntity entityChild;
if (ParentEntity.ChildEntity.SingleOrDefault() != null)
entityChild = ParentEntity.ChildEntity.SingleOrDefault();
else
{
entityChild = new ChildEntity();
ParentEntity.ChildEntity.Add(entityChild);
}
entityChild.ColumnA= txtA.Text;
entityChild.ColumnB= txtB.Text;
// Send entityParent for update
_objParent.Update(entityParent)
_objParent.Update()代碼:
context.vouchers.Attach(entityParent);
ObjectStateEntry objectState = context.ObjectStateManager.GetObjectStateEntry(entityParent);
objectState.ChangeState(System.Data.EntityState.Modified);
context.SaveChanges();
UPDATE(父加載代碼示例)
public ParentEntity GetById(int id)
{
using (var context = new DBEntities())
{
ParentEntity _entity = context.ParentEntity
.Include("ChildEntity")
.Where(e => e.parent_id == id);
return (ParentEntity)_entity.SingleOrDefault()
}
}
您要新增或更新的父對象?如果你正在更新對象,請告訴我們你是如何加載它的。 –
請參閱上面已提供的_objParent.Update()代碼。 1)附加實體,2)獲取ObjectStateEntry,3)修改狀態,4)將更改保存到上下文中。 –
你如何加載父項? –