EntityType Configuration EF Core

The Fluent API is one of the preferred ways to achieve the EntityType Configurations EF Core. In our previous tutorial on Fluent API in Entity Framework Core, We showed you how to configure an entity. We put all our configurations in the DbContext class. In this tutorial, we will show how to move the configurations to separate configuration classes using the IEntityTypeConfiguration Interface.

Entity Type Configuration in Context file

We use the Modelbuilder class to configure the Entities. We get the reference to the Modlebuilder class by overriding the OnModelCreating method of the DbContext object.

For Example,

The above code shows how to configure the employee entity in the OnModelCreating method. We can put all our Fluent API Configuration commands in the OnModelCreating method.  But as the application grows it will become very cumbersome to manage all the configuration in one place.

It is better to put the configuration information to a separate class and call it from the OnModelCreating method. 

EntityType Configuration Interface

The IEntityTypeConfiguration is introduced in EF Core 2.0. The interface has the method Configure, which we must implement in a separate configuration class for an entity type. Then we invoke the ApplyConfiguration method of the modelbuilder passing the instance of the newly created configuration class.

Separate Configuration File per entity

The following code shows how to move the configuration out of ModelBuilder class

First, create a separate class EmployeeConfiguration which implements the IEntityTypeConfiguration interface.

Then, create the method Configure and put all the configuration of the Employee entity.

Finally, use the  ApplyConfiguration of the modelbuilder and pass it the instance of the just created EmployeeConfiguration class.

Thats it.

Bulk Register Configurations

If you have many models, you will end up with many configuration files. You also have to remember to add the configuration file in the OnModelCreating method.

You can use the ApplyConfigurationsFromAssembly extension method, which uses the reflection to find all the configuration files and registers them automatically.

References

  1. ApplyConfigurationsFromAssembly
  2. IEntityTypeConfiguration

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top