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; }