Configuration enables you to override EF Core's default behaviour. Configuration can be applied in two ways, using the Fluent API, and through DataAnnotation attributes.
Attributes are a kind of tag that you can place on a class or property to specify metadata about that class or property. Entity Framework Core makes use of attributes defined in the System.ComponentModel.DataAnnotations.Schema
and System.ComponentModel.DataAnnotations
namespaces.
System.ComponentModel.DataAnnotations.Schema attributes
Attribute | Description |
---|---|
Table | The database table and/or schema that a class is mapped to. |
Column | The database column that a property is mapped to. |
ForeignKey | Specifies the property is used as a foreign key in a relationship. |
DatabaseGenerated | Specifies how the database generates values for a property. |
NotMapped | Applied to properties or classes that are to be excluded from database mapping. |
InverseProperty | Specifies the inverse of a navigation property. |
ComplexType | Sepcify the class or structure is a complex type. |
System.ComponentModel.Annotations attributes
Attribute | Description |
---|---|
Key | Identifies one or more properties as a Key. |
Timestamp | Specifies the data type of the database column as rowversion . |
ConcurrencyCheck | Specifies that the property is included in concurrency checks. |
Required | Specifies that the property's value is required. |
MaxLength | Sets the maximum allowed length of the property value (string or array). |
StringLength | Sets the maximum allowed length of the property value (string or array). |