Entity Framework 6: безопасно ли «очистить» ресурсы от старых миграций для уменьшения размера сборки? - PullRequest
0 голосов
/ 25 мая 2020

Мой проект базы данных (EF6, code-first) вырос до dll-файла размером> 15 МБ. В основном это вызвано ресурсами всех исторических миграций.

Насколько я понимаю из чтения документации , эти старые ресурсы не используются.

Безопасно ли удалить ресурсы этих исторических миграций (или заменить их пустыми значениями), оставив последние миграции без изменений?

1 Ответ

0 голосов
/ 29 мая 2020

Чтобы ответить на свой вопрос; ответ: Нет, вы не можете очистить ресурсы от старых миграций.

Я создал тестовый проект с несколькими миграциями и экспериментировал с ним, но в какой-то момент он больше невозможно применить определенные миграции, так как схема в ресурсе требуется для дополнительной информации.

update-database -verbose
(..)
Applying explicit migration: 202005271522443_EnrollmentMigration.
System.Data.Entity.Migrations.Infrastructure.MigrationsException: The Foreign Key on table 'dbo.Enrollment' with columns 'CourseID' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key.
   bij System.Data.Entity.Migrations.DbMigrator.FillInForeignKeyOperations(IEnumerable`1 operations, XDocument targetModel)
   bij System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, VersionedModel targetModel, IEnumerable`1 operations, IEnumerable`1 systemOperations, Boolean downgrading, Boolean auto)

Конечно, я мог бы попытаться украсить каждый FK, но пока я решил остановить этот эксперимент так как это, вероятно, приведет к дальнейшим проблемам, связанным с отсутствием информации о схеме ..

...