Entity Framework Core provides a range of options for configuring entity properties using the Fluent API. These options are available as methods that can be chained to the EntityTypeBuilder.Property method, which is available in a number of versions. Some take the name of the property to be configured as strings:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Entity>().Property(typeof(string), "PropertyName")...
}
or
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Entity>().Property<string>("PropertyName")....
}
Most often, you will see the version that takes a lambda expression denoting the property to be configured. This option provides strong typing and therefore Intellisense assistance and is the preferred option used throughout this guide:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<EntityName>().Property(p => p.PropertyName)...
}
Methods available for property configuration are detailed below. Note that a number of additional provider-specific methods may also become available depending on the database provider that you use.
| HasAnnotation | Provides a means to apply annotations via the Fluent API | 
| HasColumnName | Specifies the name of the database column that the property should map to | 
| HasColumnType | Specifies the data type of the database column that the property should map to | 
| HasDefaultValue | Configures the default value of the database column that the property maps to | 
| HasDefaultValueSql | Configures the default value expression for the database column that the property maps to | 
| HasMaxLength | Specifies the maximum length of data that can be stored for strings or binary data (arrays) | 
| IsConcurrencyToken | Denotes that the property takes part in concurrency management | 
| IsRequired | Configures the database column as not nullable | 
| ValueGeneratedNever | Specifies that the database should not automatically generate values for the property | 
| ValueGeneratedOnAdd | Specifies that values should only be generated automatically when new data is added | 
| ValueGeneratedOnAddOrUpdate | Specifies that values should be generated automatically when data is added or updated | 
 FAQ Chat
 
            FAQ Chat