在每一個我POCO的的構造函數中我有這樣的:自我跟蹤實體 - 從導航屬性中刪除不設置狀態設置爲「已刪除」
this.StartTracking();
爲了確保跟蹤開啓一個的每個實例我的POCO的。我有一個實體A包含實體B的TrackableCollection當我載入我的實體A的實例像這樣的:
using(MyContext ctx = new MyContext())
{
entityA = ctx.EntityA.Include("EntityB").Where(x => x.Id== id).FirstOrDefault();
}
放眼於實體A的ObjectsAddedToCollection財產,有標記爲「不變」 1個對象。當我做entityA.EntityB [0] .MarkAsDeleted()時,狀態不會被設置爲'已刪除'並移動到ObjectsRemovedFromCollection集合。它完全被刪除。我再次檢查並將ChangeTrackingEnabled設置爲True,對於實體A和實體B.是否有這個原因不起作用的原因?因此,我不能刪除子實體並將更改持久化到數據庫。