Propriétés obligatoires et facultatifsRequired and Optional Properties

Une propriété est considéré comme facultative s’il est valide pour pouvoir contenir null.A property is considered optional if it is valid for it to contain null. Si null n’est pas une valeur valide pour être affectée à une propriété, puis il est considéré comme une propriété obligatoire.If null is not a valid value to be assigned to a property then it is considered to be a required property.

ConventionsConventions

Par convention, une propriété dont le type CLR peut contenir la valeur null sera configurée comme étant facultatif (string, int?, byte[], etc..).By convention, a property whose CLR type can contain null will be configured as optional (string, int?, byte[], etc.). Les propriétés dont le type CLR ne peut pas contenir de valeur null seront configurées en fonction des besoins (int, decimal, bool, etc..).Properties whose CLR type cannot contain null will be configured as required (int, decimal, bool, etc.).

Note

Une propriété dont le type CLR ne peut pas contenir de valeur null ne peut pas être configurée comme facultatifs.A property whose CLR type cannot contain null cannot be configured as optional. La propriété sera toujours considéré comme exigé par Entity Framework.The property will always be considered required by Entity Framework.

Annotations de donnéesData Annotations

Vous pouvez utiliser des Annotations de données pour indiquer qu’une propriété est obligatoire.You can use Data Annotations to indicate that a property is required.

public class Blog
{
    public int BlogId { get; set; }
    [Required]
    public string Url { get; set; }
}

API FluentFluent API

Vous pouvez utiliser l’API Fluent pour indiquer qu’une propriété est obligatoire.You can use the Fluent API to indicate that a property is required.

class MyContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .Property(b => b.Url)
            .IsRequired();
    }
}

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }
}