Как применить одно и то же имя для разных миграций? - PullRequest
0 голосов
/ 11 февраля 2019

Entity Framework Core не позволяет мне называть разные миграции одним и тем же именем.Хотя имена все равно будут разными, потому что отметка времени всегда отличается.Ошибка:

The name '_' is used by an existing migration.

Предыдущая версия EF (.NET Framework) позволяла это делать.

1 Ответ

0 голосов
/ 11 февраля 2019

Хотя имена все равно будут разными, потому что отметка времени всегда отличается

Это не совсем правильно.Хотя имя миграции использует в нем временную метку, именем созданного класса миграции будет имя без какой-либо временной метки.

Это имя генерируется внутри класса CSharpMigrationsGenerator с использованием ICSharpHelper.Identifier .Экземпляр, реализующий этот интерфейс, внедряется с помощью внедрения зависимостей, который, по-видимому, обладает способностью переопределять реализацию вашим собственным кодом, однако я не вижу, чтобы это происходило с использованием встроенных инструментов командной строки, возможно, вам придется заново изобрести свой собственныйинструмент миграции или сделайте это из кода своего приложения.

И даже если вам удастся преодолеть эту часть, есть другие внутренние вещи, с которыми вам придется справиться.Например, IMigrationsAssembly.Migrations также содержит имена миграций без части метки времени, поэтому вам все равно придется настроить имена так, чтобы они были уникальными, поскольку словарь просто не допускает дублирования ключей.

Summa summarum, возможно, возможно, но не стоит затраченных усилий с текущей версией EF Core.

...