Класс DbContext в entify framework core
зачем нужен этот класс? не понятно из описания. я проектирую asp .net mvc веб приложение. изучая фреймворк.
Ответы (2 шт):
DbContext - общий класс для работы с базой данных. Контекстов может быть несколько, но чаще всего используют один. В DbContext вы можете указать:
- Ваши сущности базы данных через DbSet.
- Дополнительные настройки сущностей и самой базы данных через FluentAPI. Например, можно заполнить некие таблицы значениями по умолчанию или настроить ForeignKey для сущностей, правила каскадного удаления и.т.п
- Правила подключения к базе данных
- И много чего другого
В дополнение к ответу @Lapish, DbContext реализует важный паттерн Unit of Work.
Изменения, сделанные вами в DbContext, либо попадают в базу полностью при вызове SaveChanges[Async], либо не попадают тоже полностью. Таким образом, если вы начали какие-то изменения, и в процессе работы что-то пошло не так, то вы просто можете бросить исключение, не вызывать SaveChanges, и изменения не будут отражены в базе данных. Таким образом, ваша база будет всё время в консистентном состоянии.