Entity framework core is an orm or object relational mapper object
relational mapping is a technique that lets you query and manipulate data
from a database using an object oriented paradigm.
So in our code,
we can work on objects rather than directly writing SQL statements,
relational models and object models do not work very well together.
A relational database represents data in a tabular format object oriented
languages represented as an interconnected graph of objects.
It's dorm which is the library that implements the object relational mapping
technique like entity framework core that takes care of it.
Needless to say is that that is a big plus in very simple cases,
those objects directly map to your database tables.
Like in our demo, we've got a city and a point of interest and that's about it.
But in larger more complicated pieces of software,
this oo technique allows us to implement oo functionality like inheritance,
a base person class and an employee class that inherits person
can map to data stored in the same table in the database or
better granularity without inheritance,
a table in database might translate to a different
set of classes in an OO model.
The entities the orm works with are different than
a one on one mapping to tables,
entity framework core comes with a set of providers.
So you can use it with a variety of databases.
We can use it with Microsoft Sequel server of course,
but also with SQLite, Postgres, MySQL and so on.
There's also an in memory provider for testing purposes.
What we are going to use in this course is SQL lite because that is
a provider that is supported on all platforms.
And by all I DS that being said, if you want to use sequel server,
my SQL or another provider,
the concepts and reasoning you will learn is exactly the same.
You can use entity framework or with a code first approach which will create
the database from our code or with a database first approach,
which is convenient if you've already got a database,
we haven't got a database yet.
So in our demos, we will take the code first approach.
What about we get going with those demos?