2.0: Add User Entity and DbContext

Back in our .API project, let's add a User entity to represent our users.

We'll start out with a basic class and get authentication working before expanding it.

In the EFConnect.Data project, add a new folder called Entities.

Inside of the Entities folder - add a new class called User.cs. With the C# extension installed - right click on the folder and select New C# Class. Otherwise, you will have to write out the boilerplate.

namespace EFConnect.Data.Entities
{
    public class User
    {
        public int Id { get; set; }
        public string Username { get; set; }
        public byte[] PasswordHash { get; set; }
        public byte[] PasswordSalt { get; set; }
    }
}

Notice that the PasswordHash and PasswordSalt properties are byte arrays. These will be used for securely encrypting our User's passwords. It will be explained later - but, make sure that they are byte arrays for now.

Add DbContext

We need to add a package reference for Entity Framework Core and SQL Server in the Data project.

In your terminal, while inside of the EFConnect.Data project enter these three commands:

Inside of the EFConnect.Data project - add a new class called EFConnectContext.cs.

Add Connection String

In your .API project - inside of the appsettings.json file - add a section called "ConnectionStrings" and with the following connection string:

Registering The DbContext in Startup.cs

Now we have our first opportunity to register a class for dependency injection in our service container.

In Startup.cs, inside of the ConfigureServices() method add the following (and make sure it's above services.AddMvc()).

The connection string could be entered as a string literal inside of the UseSqlServer() method. But, it is better to store the connection string inside of a configuration file.

The Configuration is added to our Startup class inside of the constructor. It has a method for accessing different sections of our appsettings.json - in this case, we're accessing the "ConnectionStrings" section with the GetConnectionString() method.

Last updated