Неразумно возвращать идентификатор нового созданного потомка в методе Save
.
Для вашего текущего кода Save
- не единственная цель сохранить Children
свойство. Давайте предположим некоторый сценарий, как показано ниже:
- Обновление
Parenet
без изменения свойства Children
, какое ожидаемое возвращаемое значение для Save
- Обновление
Parenet
с добавлением нескольких новых Child
, какое ожидаемое возвращаемое значение
- Обновление
Parenet
с удалением Child
, что вернет
Вы можете рассмотреть возможность получения нового Id
за пределами public int Save(Parent parent)
после звонка context.SaveChanges();
.
Демо-код:
var parent1 = _db.Parent.Include(p => p.Children).FirstOrDefault(p => p.Id == 1);
var child3 = new Child { Name = "N3"};
var child4 = new Child { Name = "N4" };
parent1.Children.Add(child3);
parent1.Children.Add(child4);
_db.Update(parent1);
_db.SaveChanges();
var childId3 = child3.Id;
var childId4 = child4.Id;