Entity Framework 6.1.1 Соглашение об именах для индексов

Я понимаю, как добавить соглашения в код первого (с миграциями) проекта. Я успешно сумел выполнить имена таблиц и даже изменил поля идентификатора GUID на некластеризованные.

Но я не нашел, как изменить имя индекса по умолчанию, которое EF предоставляет, когда имя не указано.

[Index(IsUnique = true)]
public string Code { get; set; }

[Index]
public string Description { get; set; }

У меня есть эти два требования. Верхний индекс должен быть назван UX_[schema]_[table]_Code, второй IX_[schema]_[table]_Description

У меня также есть необходимость поддерживать несколько индексов столбцов, где IsUnique по-прежнему будет UX, но раздел столбца представляет собой комбинацию Camel Case всех столбцов (например, UX_[schema]_[table]_CodeDescription если два столбца выше, где в том же индексе.

Я предполагаю, что мне нужно будет добавить это после IndexAttributeConvention, чтобы все текущие функции работали и создавали IndexAnnotations. Но я не могу найти, где Индексы получают свое первоначальное имя, если оставить пустым в Атрибуте (или в структуре Fluent).

Заранее спасибо.

1 ответ

Вы пробовали эту аннотацию: [Index("IndexName")] или для вашего примера:

[Index("IndexName", IsUnique = true)]
public string Code { get; set; }
Другие вопросы по тегам