For index
Entity Framework Core

EntityFramework (core)

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

Интерфейс IQueryable похож на IEnumerable (позволяет использовать LINQ), но при этом выражения (Expression tree), примененные к IQueryable, преобразуются в sql запрос.
В момент материализации IQueryable строит sql запрос, выполняет его и преобразуется в IEnumerable. Используется механизм трансляции с помощью реализации соответствующего хранилищу провайдера.

// Где ^ - момент материализации коллекции (т.е. выполнение sql запроса и автоматического маппинга результата в c# array)
DbSet.Where(e => e.Id = "1").OrderBy(e => e.Id).^ToArray()

Варианты использования

НаименованиеСтруктураEntityFramework supportEntityFrameworkCore supportКонфигурация
Code firstКлассы + DbContext -> Миграции -> БД++Способы дополнительной настройки
  • Атрибуты
  • Fluent
Database firstСуществующая БД -> DbContext + Классы++ 
Schema firstСхема -> Классы -> БД+- 

Entity схема.png


Реализация связей между таблицами


 

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