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

Что именно делает Attach() в Entity Framework?

Возможный дубликат:
Entity Framework 4 - AddObject vs Attach

Я несколько раз использовал приложение, особенно при работе с моделями.

using (var context = new MyEntities())
{
    context.Attach(client);
    context.SaveChanges();
}

Из контекста, похоже, он просто запускает UPDATE против записи в EntityFrameworks, но я также вижу, что он используется в операторах DELETE. Поэтому я могу только предположить, что он просто получает указатель на базу данных?

Может ли кто-нибудь указать мне в правильном направлении, я искал его некоторое время, а пока я не опустел, я не могу найти никаких хороших объяснений того, что он делает (из обзора и изнутри),

4b9b3361

Ответ 1

Точно так же, как интересный код, который вы опубликовали, ничего не делает

using (var context = new MyEntities())
{
    context.Attach(client);
    context.SaveChanges();
}

Все это означает, что сущность на графике отслеживания не вносит изменений в объект и сохраняет его.

Любые изменения, внесенные в объект перед прикреплением, игнорируются в файле сохранения

Что было бы более интересным, если бы он фактически обновил свойство, то есть:

using (var context = new MyEntities())
{
    context.Attach(client);
    client.Name = "Bob";
    context.SaveChanges();
}