LINQ with EF Core

Learn about projection in LINQ, and how to build an EF Core model to work with sequences of entities from a database using SQLite or SQL Server.

Projection

We have looked at LINQ queries that filter and sort, but none that change the shape of the items in the sequence. This is called projection because it’s about projecting items of one shape into another. To learn about projection, it is best to have some more complex types to work with, so in the next project, instead of using string sequences, we will use sequences of entities from the Northwind sample database. We will give instructions to use SQLite because it is cross-platform, but if we prefer to use SQL Server, feel free to do so.

Building an EF Core model

We must define an EF Core model to represent the database and tables we work with. We will define the model manually to take complete control and to prevent a relationship from being automatically defined between the Categories and Products tables. Later, we will use LINQ to join the two entity sets:

Step 1: Use your preferred code editor to add a new “Console App or console” project named LinqWithEFCore to the Chapter11 solution or workspace.

  • In Visual Studio Code, select LinqWithEFCore as the active OmniSharp project.

Step 2: In the LinqWithEFCore project, add a package reference to the EF Core provider for SQLite and/or SQL Server, as shown in the following markup:

Get hands-on with 1400+ tech skills courses.