Как настроить константу MaxIdentifierLength в EF Core 2.1? - PullRequest
0 голосов
/ 03 июля 2018

После обновления с EF 2.0 до 2.1 мы обнаружили, что новая миграция воссоздает FK и индексы каким-то странным образом, сокращая их имена до 63 символов. Кроме того, атрибут MaxIdentifierLength присутствовал в верхней части файла миграции. Я провел некоторое исследование и не нашел, как настроить длину по умолчанию.

1 Ответ

0 голосов
/ 04 июля 2018

В настоящее время нет свободного API для этого.

Но к нему можно получить доступ через RelationalModelAnnotations класс:

var maxIdentifierLength = modelBuilder.Model.Relational().MaxIdentifierLength;

Также может быть изменено:

modelBuilder.Model.Relational().MaxIdentifierLength = newValue;

но я не буду этого рекомендовать. Каждый поставщик БД по умолчанию устанавливает максимальную поддерживаемую длину идентификатора (для SqlServer это 128), поэтому настройка большего значения, вероятно, приведет к неправильным именам таблиц / ограничений и исключениям времени выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...