新しいものを使用する代わりに、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の記事があります。