79.45K
Category: programmingprogramming

Введение в Entity Framework Core

1.

Введение в
Entity Framework Core

2.

Что такое Entity Framework?
Entity Framework Core - object-relational mapping (ORM).
Может использоваться на различных платформах стека .NET.
консольные приложения
Windows Forms
WPF
UWP
ASP.NET Core
EF Core можно использовать на ОС Windows, на Linux и Mac OS X.

3.

4.

Что такое Entity Framework?
Объектная модель — это группа связанных между собой классов приложения,
использующихся для хранения данных из БД;
ORM — Object Relationl Mapping или «отображение объектов в связанные
таблицы».
Контекст БД — это специальный класс, производный от системного класса
DbContext и предназначенный для установления связи с БД и для выполнения
запросов к БД .
Сущность — это класс, соответствующий таблице БД, автоматически
создаваемый Entity Framework. Свойства этого класса соответствуют полям
таблицы. Cущности могут быть связаны ассоциативной связью один-комногим, один-ко-одному и многие-ко-многим, подобно тому, как в реальной
базе данных происходит связь через внешние ключи.

5.

Запросы в EF Core
LINQ to Entities — это расширение LINQ для создания запросов к Conceptual
model (т.е. к объектам классов приложения) на языках C# или VB.
Entity SQL — представляет собой независимый от хранилища язык
запросов, аналогичный языку SQL. Entity SQL позволяет выполнять запросы
к данным сущности, представленным либо в виде объектов, либо в
табличной форме». Этот язык несколько сложнее LINQ to Entities и
требует специального рассмотрения.

6.

Способы создания Entity Data Model
Database first
Model first
Code First

7.

Чтобы работать с Entity Framework Core для MS SQL Server нужно
подключить Microsoft.EntityFrameworkCore.SqlServer.
Создать базу данных: Microsoft.EntityFrameworkCore.Tools.

8.

Database first
В Package Manager Console выполнить следующую команду:
Scaffold-DbContext "строка подключения" провайдер_бд
Для SqlServer, например:
Scaffold-DbContext “connection“ Microsoft.EntityFrameworkCore.SqlServer

9.

Тип данных БД в .NET
int :
int
nchar :
string
bit :
bool
ntext :
string
char :
string
numeric : decimal
date :
DateTime
nvarchar : string
datetime : DateTime
real :
datetime2 : DateTime
smallint : short
decimal :
decimal
text :
string
float :
double
tinyint :
byte
money :
decimal
varchar :
string
float

10.

Lazy Loading

11.

Lazy Loading
EF Standard Навигационное свойство загружается при обращении
EF Core Навигационное свойство загружается null (по умолчанию)

12.

“Lazy” Loading
Явная загрузка
Include()
ThenInclude()
‘Lazy’ свойства обязательно должны быть помечены как virtual

13.

Советы по производительности
Если вы используете данные только для чтения
AsNoTracking()
Хорошенько подумайте о быстрой загрузке
Использовать Include(), ThenInclude() только при необходимости

14.

Миграции в командной строке
Добавить/удалить миграцию
dotnet ef migrations add “{name}”
dotnet ef migrations remove
Накатить обновление
dotnet ef database update
English     Русский Rules