C#. Entity. Основные операции с данными

Большинство операций с данными представляют собой CRUD-операции (Create, Read, Update, Delete), то есть получение данных, создание, обновление и удаление. Entity Framework позволяет легко производить данные операции.

Для примеров с операциями возьмем простенькую модель Phone:

И следующий класс контекста данных:

Добавление

Для добавления применяется метод Add() у объекта DbSet:

После добавления надо сохранить все изменения с помощью метода SaveChanges().

Консольный вывод:

Редактирование

Контекст данных способен отслеживать изменения объектов, поэтому для редактирования объекта достаточно изменить его свойства и после этого вызвать метод SaveChanges():

Но рассмотрим другую ситуацию:

Так как объект Phone получен в одном контексте, а изменяется для другого контекста, который его не отслеживает. В итоге изменения не сохранятся. Чтобы изменения сохранились, нам явным образом надо установить для его состояния значение EntityState.Modified:

Удаление

Для удаления объекта применяется метод Remove() объекта DbSet:

Но как и в случае с обновлением здесь мы можем столкнуться с похожей проблемой, когда объект получаем из базы данных в пределах одного контекста, а пытаемся удалить в другом контексте. И в этом случае нам надо установить вручную у объекта состояние EntityState.Deleted:

Метод Attach

Если объект получен в одном контексте, а сохраняется в другом, то мы можем устанавливать у него вручную состояния EntityState.Updated или EntityState.Deleted. Но есть еще один способ: с помощью метода Attach у объекта DbSet мы можем прикрепить объект к текущему контексту данных:

 

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

Leave a Reply