そもそもEntity Frameworkって?
Coreのあるなしは?
さっぱりだ。。。
Entity Framework(以下、EF)とEntity Framework Core(以下、EF Core)は、両方ともデータベースを操作するためのオブジェクトリレーショナルマッパー(ORM)ですが、いくつかの重要な違いがあります。以下に、具体例を交えて説明します。
ORM?
とりあえず、あとで調べるか。。。
- プラットフォームのサポート EFは、.NET Frameworkのみをサポートしています。一方、EF Coreは、.NET Frameworkだけでなく、.NET Coreおよび.NET 5をサポートしています。つまり、EF Coreは、Windows、Linux、およびmacOSを含む多くのプラットフォームで動作します。
- データベースのサポート EFは、SQL Serverおよび一部のその他のリレーショナルデータベースにのみ対応しています。一方、EF Coreは、SQL Server、MySQL、PostgreSQL、SQLite、およびCosmos DBなど、より多くのデータベースをサポートしています。
- LINQのサポート EFは、.NET Frameworkに含まれているLINQ to Entitiesを使用しています。
一方、EF Coreは、LINQ to Entitiesだけでなく、LINQ to SQLもサポートしています。
LINQ??
とっ、とりあえず先に進もう。。。
- パフォーマンス EF Coreは、EFよりも高速であることが知られています。例えば、EF Coreでは、クエリの生成にロードされたナビゲーションプロパティを使用できますが、EFではできません。これにより、EF Coreのクエリは、より効率的であることが多いです。
データベースの操作において、EFはいまや欠かせない存在!?
とりあえず、EFとEF Coreではより多くのデータベースをサポートしていることや、クエリのパフォーマンスが向上しているので、アプリケーションの要件にもよりますが、これから始めるならEF Coreを選択すべきですね。
具体的な使い方も今後勉強します。