entity-framework/core/index.md
Entity Framework (EF) Core is a lightweight, extensible, open source and cross-platform version of the popular Entity Framework data access technology.
EF Core can serve as an object-relational mapper (O/RM), which:
EF Core supports many database engines, see Database Providers for details.
With EF Core, data access is performed using a model. A model is made up of entity classes and a context object that represents a session with the database. The context object allows querying and saving data. For more information, see Creating a Model.
EF supports the following model development approaches:
[!code-csharpMain]
Instances of your entity classes are retrieved from the database using Language Integrated Query (LINQ). For more information, see Querying Data.
[!code-csharpMain]
Data is created, deleted, and modified in the database using instances of your entity classes. See Saving Data to learn more.
[!code-csharpMain]
While EF Core is good at abstracting many programming details, there are some best practices applicable to any O/RM that help to avoid common pitfalls in production apps:
nvarchar(max) and decimal(18, 2) are rarely the best types for columns mapped to string and decimal properties, but those are the defaults that EF uses because it doesn't have knowledge of your specific scenario.For introductory tutorials, see Getting Started with Entity Framework Core.