If you are an enterprise developer or you are building a Line of Business Application and targeting the full .NET Framework and who also cares about visual tooling, EF 6.x is the way to go. It also means you can do WPF, Win Forms, ASP.NET MVC, Console apps etc.
EF 6.x is a mature product that is built over a period of time starting from 2008 till now. During this period, we have seen continuous improvements by way to adding new features, bug fixing etc. It has a rich eco-system of database providers and provides at least four workflows to build a model and database. It includes the following:
- Code First
- Code First From Database
- Database First (EDMX Designer)
- Entity First (Visual EDMX Designer)
EF Core on the other hand can target a multitude of application models ranging from full .NET Framework, ASP.NET Core as well as Xamarin. So if your dominant concern is to deploy your application on devices such as iOS, Android and such, EF Core is probably the way to go!
Apart from being cross-platform, EF Core is also a lightweight version of Entity Framework and is therefore built on a more leaner and faster development stack. Its because it has been built from ground up and is built over a set of services which make up the core of .NET.
Not only new platforms and new devices, EF Core has been architected to target new data stores. These data stores can be both relational and non-relational. Some of the examples of database providers are the following:
- Azure Table Storage
- In Memory (functional testing)
- Relational providers such as:
- SQL Server
- SQL Compact
- Oracle (prototyped)
more to come…