В чем разница между AddObject и Attach при переносе объекта из одного контекста в другой - PullRequest
0 голосов
/ 13 декабря 2011

Если я сначала использую базу данных, чтобы создать контекст, и дважды создаю его экземпляр. Я хочу запросить конкретную сущность из первого контекста и добавить ее во второй контекст, в чем разница между использованием AddObject и Attach. например.

Student stu = context1.Students.First();
context1.Detach(stu);
context2.Attach(stu);

и

Student stu = context1.Students.First();
context1.Detach(stu);
context2.Students.AddObject(stu);

Какая разница между ними? Заранее спасибо!

1 Ответ

4 голосов
/ 13 декабря 2011

Метод Attach прикрепит объект или граф объекта в неизменном состоянии.Это означает, что если вы не вносите никаких изменений в объект после его присоединения, EF не будет запускать какие-либо команды обновления / удаления для этого объекта при вызове метода SaveChanges().

Но при использовании AddObject метод EF вставит объект как новый объект в метод SaveChanges().

Если context2 подключен к другой базе данных и вы хотите скопировать экземпляр, вы можете использовать AddObject.В противном случае используйте метод Attach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...