Entity Framework 6:"清除 "旧迁移的资源以减少汇编大小是否安全?

问题描述 投票:0回答:1

我的数据库项目(EF6,代码优先)已经成长为一个>15MB的dll文件。这主要是由所有历史迁移的资源造成的。

据我了解,从阅读 文件这些旧资源没有被使用。

在保持上次迁移不变的情况下,删除这些历史迁移的资源(或用空值替换)是否安全?

entity-framework entity-framework-6 ef-migrations
1个回答
0
投票

回答我自己的问题;答案是。不,你不能清除旧迁移的资源。

我已经建立了一个测试项目,其中包含了一些迁移,并进行了实验,但在某一点上,已经无法应用某些迁移,因为资源中的模式是需要额外信息的。

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,但现在我决定停止这个实验,因为它可能会导致更多与缺失模式信息有关的问题。

© www.soinside.com 2019 - 2024. All rights reserved.