HasIndex () возвращает тип IndexBuilder, который позволяет вам вызывать такие вещи, как .IsUnique () или .HasName () и т. Д.
Есть ли лучший способ сделать это?
Зависит от того, считаете ли вы это лучше или нет, и хотите ли вы ДЕЙСТВИТЕЛЬНО быть беглым.
Чтобы продолжать добавлять индексы с использованием беглого стиля, необходимо вернуться к EntityTypeBuilder.Если вы действительно хотите, вы можете использовать метод расширения.
modelBuilder.Entity<T>
.AddIndex(h => h.Column1)
.AddIndex(h => h.Column2);
public static EntityTypeBuilder<TEntity> AddIndex<TEntity>(this EntityTypeBuilder<TEntity> builder, Expression<Func<TEntity, object>> indexExpression) where TEntity : class
{
builder.HasIndex(indexExpression);
return builder;
}
Или
builder.Entity<T>()
.AddIndex(indexBuilder => indexBuilder.HasIndex(h => h.Column1))
.AddIndex(indexBuilder => indexBuilder.HasIndex(h => h.Column2).IsUnique());
public static EntityTypeBuilder<TEntity> AddIndex<TEntity>(this EntityTypeBuilder<TEntity> builder, Action<EntityTypeBuilder<TEntity>> action) where TEntity : class
{
action(builder);
return builder;
}