Подтвердить что ты не робот

Когда использовать DbSet <T>.Add() vs DbSet <T>.Attach()

Я использовал Add() и столкнулся с проблемой, когда родительский объект дублировался в базе данных при Add подключении дочернего элемента. Использование Attach() решило это, но я хотел бы знать, почему вместо того, чтобы слепо спотыкаться.

4b9b3361

Ответ 1

Хорошо, когда вы используете Attach, вы указываете контекст, что объект уже находится в базе данных, SaveChanges не будет влиять на прикрепленные объекты. Add, с другой стороны, изменяет состояние объекта в контексте (если оно уже есть) до Added, что означает, что всегда вставляет объект в базу данных при вызове SaveChanges.

Это различие.