C#. Update objects in LINQ to SQL

При получении объектов из базы данных в контекст DataContext эти объекты кэшируются, и у них устанавливается состояниеUnchanged. Если мы изменим значения свойств какого-либо объекта из полученного набора, то DataContext для этого объекта создает копию с измененными значениями и устанавливает у нее статус ToBeUpdated.

При вызове метода SubmitChanges() контекст данных сверяет значения оригинального объекта и его измененной копии. И если два объекта отличаются, то создается sql-выражение UPDATE, с помощью которого происходит обновление объекта в базе данных.

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

Обновление в LINQ to SQL

Поскольку начальный и измененный возраст не совпадают, то будет сгенерировано следующее sql-выражение, которое обновит базу данных:

 

This entry was posted in C#. Bookmark the permalink.