EntityFramework - ORM, которая позволяет использовать несколько различных подходов для взаимодействия с базой. ORM предоставляет возможность работать с таблицами так, будто это коллекции некоторых объектов c#, автоматически генерируя sql запросы для выполнемых операций.

Интерфейс IQueryable схож с IEnumerable (позволяет использовать LINQ), нопри этом выражение, примененные к IQueryable, преобразуються в sql запрос.
В момент  матереализации IQueryable выполняет запрос и преобразуеться в IEnumerable.
                            |         - точка материализации
DbSet.Where(e => e.id = "1").ToArray()

Подходы

CodeFirst:
Классы -> БД

DatabaseFirst
ДБ -> классы

ShemaFirst
Схема -> Классы -> БД

Entity схема.png

Контекст и управление сущностями. Отслеживание изменений.
Понимание в какой момент времени происходит обращение к базе.

Настройка базы
Атрибуты, Fluent

Реализация загрузки связанных сущностей
Загрузка при обращении
Загрузка при выборке iqueryable
Загрузить связи для указанной сущности Entry

Организация связей между таблицами.

Механизм миграций.

Определение собственной логикик валидации сущностей.

Теги: c# EntityFramework ORM
Создал(а) Alexandr Fokin 2020/08/13 10:49