Download - 04 - [ASP.NET Core] Entity Framework Core
![Page 1: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/1.jpg)
Entity Framework Core
![Page 2: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/2.jpg)
Comment s’appelle le machin en question ?
Entity Framework Everywhere
Entity Framework 7 (EF7)
Entity Framework Core (EF Core)
![Page 3: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/3.jpg)
1 C’est quoi, EF Core ?
2 EE EEEE EE EE6
3 EEEEE
![Page 4: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/4.jpg)
Entity Framework 3.5 SP1
Entity Framework 4
Entity Framework 4.x
Entity Framework 5.x
Entity Framework 6.x
Entity Framework 6.2
Entity Framework CoreRuntime : NuGetTooling : Microsoft Download Center(Dernière version incluse dans Visual Studio)
Nouveaux composants de runtime : NuGetComposants historiques de runtime : .NETTooling : livre avec Visual Studio
Composants de runtime : .NETTooling : livré avec Visual Studio
Comment est déployé Entity Framework ?
![Page 5: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/5.jpg)
De nouvelles plateformes
.NET FRAMEWORK .NET CORE XAMARINAP
PM
ODEL
SBA
SELI
BRAR
IES
Base Class Library Core Library Mono Class Library
ASP.NET
Windows FormsWPF UWP
ASP.NET Core*
iOSAndroid
Compilers Languages Runtime components
COMMON INFRASTRUCTURE
OS XEF CoreEF6.x
![Page 6: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/6.jpg)
De nouveaux providers
EF Core n’est plus vraiment un ORM, puisqu’il ne gère plus seulement le monde relationnel.
Microsoft.EntityFrameworkCore
Bases relationnelles• SQL Server• PostGreSQL• SQLLite• SQLCompact
NoSQL• Redis• Azure Table
Storage
In memory
Services communs à toutes / une majorité de plateformes
• Métadonnées• Unit of Work• Repository• Change tracking• Génération de SQL
NB : EF 1.0 ne comprend que les providers relationnels et in memory
![Page 7: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/7.jpg)
Légèreté et extensibilité
Une API de haut niveau basée sur un coeur modulaire• DbContext et DbSet = métadonnées, change tracking, génération de SQL, unit of work et
repository
EF Core est développé sous la forme d’une collection de services• Assemblage suivant les principes de l’injection de dépendances• Chaque service est facile à utiliser, remplacer et étendre
Consommation faible en ressources mémoire et CPU• C’est assez important quand on pense devices mobiles et cloud
Mécanisme pay-per-play : j’utilise uniquement ce dont j’ai besoin
![Page 8: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/8.jpg)
EF Core vs EF6
EF Core tient compte de son historique :• L’API de haut niveau ne change pas fondamentalement par rapport à
EF6• Les choses ne changent pas pour le simple fait de changer
… mais n’est pas contraint par ce dernier• Réécriture complète• Le cœur n’a plus rien à voir avec l’ancien• Toutes les fonctionnalités d’EF6 ne seront pas portées
![Page 9: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/9.jpg)
EF Core vs EF6
EF6 est stable et mûr• 8 ans depuis la v1.0• Un écosystème de providers riche• Continuera d’être supporté et maintenu
EF Core est une vraie v1.0• Couverture fonctionnelle encore incomplète• Sa première version ne vient qu’avec quelques providers
![Page 10: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/10.jpg)
EF Core vs EF6
EF6 continue d’être un bon choix pour beaucoup d’applications.
Réfléchissez bien avant d’adopter EF Core• Des fonctionnalités non-encore implémentées (mapping vers des procédures
stockées, données spatiales, visualisation graphique du modèle…)• La base de code est récente ! Le traducteur Linq > SQL n’est pas encore au niveau
d’EF6.
Passer d’EF6 vers EF Core est une migration, pas une mise à jour• Les projets simples seront faciles à migrer• Certaines API ont radicalement changé• Attention aux différences de comportement entre API nommées de façon similaire
![Page 11: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/11.jpg)
Démos
EF Core 101
![Page 12: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/12.jpg)
Démos
Performances améliorées
![Page 13: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/13.jpg)
Démos
API de métadonnées
simplifiée
![Page 14: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/14.jpg)
Démos
Extensibilité
Top Level APIDbContext, DbSet, ChangeTracker, Database, etc.
Core ServicesStateManager, CompiledQueryCache, etc.
Database Provider ServicesSqlServerTypeMapper,
SqlServerSqlGenerationHelper, etc.
![Page 15: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/15.jpg)
Démos
Un modèle, plusieurs
plateformes
![Page 16: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/16.jpg)
Démos
Un modèle, plusieurs bases de
données
![Page 17: 04 - [ASP.NET Core] Entity Framework Core](https://reader030.vdocument.in/reader030/viewer/2022012404/58ab940f1a28abe3188b5601/html5/thumbnails/17.jpg)
Démos
Amélioration de la génération de SQL