如何处理大量的efcore迁移设计器文件,这些文件会减慢构建和IDE的速度

时间:2018-10-03 12:41:10

标签: entity-framework entity-framework-core ef-migrations entity-framework-core-2.1 entity-framework-core-migrations

我目前有一个efcore 2.1项目,其中包含约230个实体和约350个迁移。每次添加efcore迁移时,都会创建一个设计器文件。该文件约为535 kb,并且正在增长(alle Designer文件总计150mb)。这使IDE变慢且无响应,重构是不可行的,也使构建过程变慢。如果删除所有设计器文件,则构建时间将从110秒降低到20秒,IDE再次变得灵活。

但是,一旦删除所有设计器文件,我将无法使用“ dotnet ef数据库”命令。

我以前也合并了所有迁移。这是可行的,但是在团队设置中有一些问题(必须在每台开发人员机器上运行手动命令,没有团队成员可以进行任何未同步的迁移等),并且只是暂时的,因为迁移会在一段时间后再次开始堆积

我很好奇是否还有其他存在相同问题的项目,以及它们如何解决?

4 个答案:

答案 0 :(得分:1)

现在,将来可以将# All files # Sets generated code for all migrations [*] generated_code = true 文件添加到 Migrations 文件夹中,其中包含以下内容:

SomeClass

它将禁用所有分析器,这使我的IDE在所有迁移中都更加快乐。

注意:需要Visual Studio 16.5

答案 1 :(得分:0)

您可以尝试清除您的迁移文件。有时,我使用它来保持数据模块的大小和可编译性。您会发现this link有用。

答案 2 :(得分:0)

我认为您的问题是Recommended way to clean old Entity Framework Core migrationsEntity Framework Core: Is it safe to delete Migration.Designer.cs if we will never Revert a migration?的重复。在这些线程的各种答案中讨论了整个主题。

我建议考虑使用我的answer,以便再次使您的IDE敏捷并减少编译时间。从长远来看,将所有迁移不时汇总为一个迁移似乎是个好习惯。如果您的情况并不紧急,则可能需要等待this feature(针对.NET 6计划),这可以使您以更简单的方式进行操作。

答案 3 :(得分:-1)

您可以使用其他程序集来管理迁移。