ÍndicesIndexes

Observação

A configuração nesta seção é aplicável a bancos de dados relacionais em geral.The configuration in this section is applicable to relational databases in general. Os métodos de extensão mostrados aqui estará disponíveis quando você instala um provedor de banco de dados relacional (devido a compartilhado Microsoft.EntityFrameworkCore.Relational pacote).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Um índice em um banco de dados relacional é mapeado para o mesmo conceito que um índice no núcleo do Entity Framework.An index in a relational database maps to the same concept as an index in the core of Entity Framework.

ConvençõesConventions

Por convenção, os índices são denominados IX_<type name>_<property name>.By convention, indexes are named IX_<type name>_<property name>. Para índices compostos <property name> torna-se uma lista de sublinhado separado dos nomes de propriedade.For composite indexes <property name> becomes an underscore separated list of property names.

Anotações de dadosData Annotations

Índices não podem ser configurados usando as anotações de dados.Indexes can not be configured using Data Annotations.

API fluenteFluent API

Você pode usar a API fluente para configurar o nome de um índice.You can use the Fluent API to configure the name of an index.

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

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Blog>()
            .HasIndex(b => b.Url)
            .HasName("Index_Url");
    }
}

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