It is an ORM (Object Relation Mapper) that allows us to work with our databases at an higher level of abstraction

DbContext : Connection to Database
DbSet : Represent Tables in Database

LINQ is used to query DBSets which are then converted to its equivalent SQL query by Entity Framework

Workflows

Database First : Create DB with tables and have Entity Framework create the corresponding Domain Classes
Code First : We create Domain Classes and have them converted to the equivalent Database Queries