使用 Fluent API 指定索引填充因子?

Specify an index fill factor using Fluent API?

我正在使用 Entity Framework 7 (.NET Core 1) RC1。我想在迁移中创建一些索引。这部分很简单,但我找不到任何有关如何指定索引填充因子的示例。

上下文看起来像这样:

modelBuilder.Entity<SomeObject>( entity =>
{
    entity.HasIndex( e => e.SomeProperty ).HasName(" IX_SomeObject_SomeProperty" );
}

迁移看起来像这样:

migrationBuilder.CreateIndex(
    name: "IX_SomeObject_SomeProperty",
    schema: "dbo",
    table: "SomeObject",
    column: "SomeProperty" );

这只是 Fluent 不支持吗?我必须在迁移中手动创建索引吗?

从 EF Core RC1 开始不支持填充因子。您可以使用 migrationBuilder.Sql 手动编写创建索引语句。

即将在 EF Core 5.0 中支持。

modelBuilder
    .Entity<Customer>()
    .HasIndex(e => e.Name)
    .HasFillFactor(90);

参考:https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/whatsnew#specify-sql-server-index-fill-factor