Можно ли использовать несколько индексов с помощью HasColumnAnnotation?

Похоже, в Entity Framework 6.1 они добавили возможность создания табличных индексов с помощью новогоHasColumnAnnotation метод. Я создал несколько вспомогательных расширений для ускорения процесса:

public static class MappingExtensions
{
    public static StringPropertyConfiguration HasIndex(this StringPropertyConfiguration config, bool isUnique = false)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute() { IsUnique = isUnique }));
    }
    public static StringPropertyConfiguration HasIndex(this StringPropertyConfiguration config, string name, int order = 1, bool isUnique = false)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute(name, order) { IsUnique = isUnique }));
    }
    public static PrimitivePropertyConfiguration HasIndex(this PrimitivePropertyConfiguration config, bool isUnique = false)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute() { IsUnique = isUnique }));
    }
    public static PrimitivePropertyConfiguration HasIndex(this PrimitivePropertyConfiguration config, string name, int order = 1, bool isUnique = false)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute(name, order) { IsUnique = isUnique }));
    }
}

Это работает фантастически ... пока я не попытаюсь создать второй индекс, который содержит столбец, уже используемый в другом индексе. Все, что я добавлю последним, переписывает оригинал. Кто-нибудь знает, возможно ли в настоящее время добавить несколько индексов в один и тот же столбец с помощью новогоHasColumnAnnotation доступно наStringPropertyConfiguration а такжеPrimitivePropertyConfiguration?

Я могу обойти это, как всегда, вручную добавляя индексы в сценарии миграции, но было бы лучше всего настроить это вEntityTypeConfiguration сопоставления, чтобы я мог иметь все это в одном месте.

После обратной связи Герца, это то, что я в итоге сделал:

public static class MappingExtensions
{
    public static StringPropertyConfiguration HasIndex(this StringPropertyConfiguration config, params IndexAttribute[] indexes)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(indexes));
    }

    public static PrimitivePropertyConfiguration HasIndex(this PrimitivePropertyConfiguration config, params IndexAttribute[] indexes)
    {
        return config.HasColumnAnnotation("Index", new IndexAnnotation(indexes));
    }
}

И вот новое использование:

Property(x => x.Name).IsRequired().HasMaxLength(65).HasIndex(new IndexAttribute("IX_Countries_Name") { IsUnique = true }, new IndexAttribute("IX_Countries_Published", 2))

Ответы на вопрос(1)

Ваш ответ на вопрос