EntityTypeConfiguration Class in Code-First:

Before we start to configure using Fluent API, let's see an important class of Fluent API.

EntityTypeConfiguration is an important class in Fluent API. EntityTypeConfiguration provides you important methods to configure entities and its properties to override various Code-First conventions. It can be obtained by calling the Entity<TEntity>() method of DbModelBuilder class as shown below.

EntityTypeConfiguration

EntityTypeConfiguration has the following important methods:

Method Name Return Type Description
HasKey<TKey> EntityTypeConfiguration Configures the primary key property(s) for this entity type.
HasMany<TTargetEntity> ManyNavigationPropertyConfiguration Configures a many-to-many relationship from this entity type.
HasOptional<TTargetEntity> OptionalNavigationPropertyConfiguration Configures an optional relationship from this entity type. Instances of the entity type can be saved to the database without this relationship being specified. The foreign key in the database will be nullable.
HasRequired<TTargetEntity> RequiredNavigationPropertyConfiguration Configures a required relationship from this entity type. Instances of the entity type will not be able to be saved to the database unless this relationship is specified. The foreign key in the database will be non-nullable.
Ignore<TProperty> Void Excludes a property from the model so that it will not be mapped to the database.
Map EntityTypeConfiguration Allows advanced configuration related to how this entity type is mapped to the database schema.
Property<T> StructuralTypeConfiguration Configures a struct property that is defined on this type.
ToTable Void Configures the table name that this entity type is mapped to.

Visit MSDN for more information on EntityTypeConfiguration class.

Let's start to configure entities using Fluent API in the next section.