Я хотел бы удалить элемент из коллекции, которая существует в одной сущности.Проблема, с которой я сталкиваюсь:
- объект удаляется из контекста
- после сохранения изменений объект все еще существует
Родительский объект:
public class MyObject
{
public int Id { get; private set; }
public ICollection<ChildObject> ChildObjcets { get; private set; }
public void RemoveChildObject(ChildObject @object)
{
this.ChildObjcets.Remove(@object);
}
}
Дочерний объект:
public class ChildObject
{
public int Id { get; private set; }
public MyObject MyObject { get; set; }
public int MyObjectId { get; set; }
}
Что я пробовал:
public void Proceed()
{
//myObject contain 4 child objects inside
var myObject = _repo.GetMyObject();
var childObject = _repo.GetChildObject();
myObject.RemoveChildObject(childObject);
//myObject contain 3 items now
}
Перед сохранением изменений не вижуудаленный объект в трекере изменений - состояние должно быть удалено?
var childObjects = ChangeTracker.Entries().Where(x => x.Entity is ChildObject).ToList(); // returns 3 - the removed one does not exist
Однако, когда я сохраняю изменения, корневой объект все еще содержит 4 объекта - таким образом, дочерний объект вообще не был удален
_repo.SaveChanges();
var myObject = _repo.GetMyObject();
Есть идеи, как обработать удаление дочернего объекта из корневого объекта?