Propriedades obrigatórias e opcionaisRequired and Optional Properties

Uma propriedade é considerada opcional se ele for válido para que ele contenha null.A property is considered optional if it is valid for it to contain null. Se null não é um valor válido a ser atribuído a uma propriedade, em seguida, ele é considerado uma propriedade necessária.If null is not a valid value to be assigned to a property then it is considered to be a required property.

ConvençõesConventions

Por convenção, uma propriedade cujo tipo CLR pode conter nulos será configurada como opcional (string, int?, byte[], etc.).By convention, a property whose CLR type can contain null will be configured as optional (string, int?, byte[], etc.). As propriedades cujo tipo CLR não pode conter nulos serão configuradas conforme necessário (int, decimal, bool, etc.).Properties whose CLR type cannot contain null will be configured as required (int, decimal, bool, etc.).

Observação

Uma propriedade cujo tipo CLR não pode conter nulo não pode ser configurada como opcional.A property whose CLR type cannot contain null cannot be configured as optional. A propriedade sempre será considerada necessário pelo Entity Framework.The property will always be considered required by Entity Framework.

Anotações de dadosData Annotations

Você pode usar anotações de dados para indicar que uma propriedade é necessária.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 fluenteFluent API

Você pode usar a API Fluent para indicar que uma propriedade é necessária.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; }
}