Entity Framework 6.2でFluent構成を使用してインデックスを作成する方法 質問する

Entity Framework 6.2でFluent構成を使用してインデックスを作成する方法 質問する

新しいものを使用する代わりに、Fluent構成を使用してプロパティ/列にインデックスを作成する方法はありますか?IndexAttribute?

ベストアンサー1

さて、2017年10月26日Entity Framework 6.2は正式にリリースこれには、可能性Fluent APIを使用して簡単にインデックスを定義できます。発表された6.2 のベータ版で。

これで、 メソッドを使用できるようになりましたHasIndex()。その後に、IsUnique()一意のインデックスにする必要があるかどうかを指定します。

ちょっとした比較(前/後)の例:

// before 
modelBuilder.Entity<Person>()
        .Property(e => e.Name)
        .HasColumnAnnotation(
            IndexAnnotation.AnnotationName, 
            new IndexAnnotation(new IndexAttribute { IsUnique = true }));

// after
modelBuilder.Entity<Person>()
    .HasIndex(p => p.Name)
    .IsUnique();

// multi column index
modelBuilder.Entity<Person>()
    .HasIndex(p => new { p.Name, p.Firstname })
    .IsUnique();

インデックスをクラスター化としてマークすることもできます.IsClustered()


編集#1

複数列インデックスの例と、インデックスをクラスター化としてマークする方法の追加情報を追加しました。


編集#2

追加情報として、EF Core 2.1 では、現在の EF 6.2 とまったく同じです。
ここ参考としてMS Docの記事があります。

おすすめ記事