インデックスIndexes

注意

このセクションの構成は、一般にリレーショナル データベースに適用されます。The configuration in this section is applicable to relational databases in general. ここで示すように拡張メソッドが使用可能になるリレーショナル データベース プロバイダーをインストールするときに (共有のためMicrosoft.EntityFrameworkCore.Relationalパッケージ)。The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

リレーショナル データベース内のインデックスは、Entity Framework のコアでのインデックスと同じ概念にマップされます。An index in a relational database maps to the same concept as an index in the core of Entity Framework.

規則Conventions

慣例により、インデックスが名前付きIX_<type name>_<property name>します。By convention, indexes are named IX_<type name>_<property name>. 複合インデックスの<property name>プロパティ名のアンダー スコアの区切られたリストになります。For composite indexes <property name> becomes an underscore separated list of property names.

データの注釈Data Annotations

インデックスは、データ注釈を使用していない構成できます。Indexes can not be configured using Data Annotations.

Fluent APIFluent API

Fluent API を使用すると、インデックスの名前を構成します。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; }
}