我目前有一个efcore 2.1项目,其中包含约230个实体和约350个迁移。每次添加efcore迁移时,都会创建一个设计器文件。该文件约为535 kb,并且正在增长(alle Designer文件总计150mb)。这使IDE变慢且无响应,重构是不可行的,也使构建过程变慢。如果删除所有设计器文件,则构建时间将从110秒降低到20秒,IDE再次变得灵活。
但是,一旦删除所有设计器文件,我将无法使用“ dotnet ef数据库”命令。
我以前也合并了所有迁移。这是可行的,但是在团队设置中有一些问题(必须在每台开发人员机器上运行手动命令,没有团队成员可以进行任何未同步的迁移等),并且只是暂时的,因为迁移会在一段时间后再次开始堆积
我很好奇是否还有其他存在相同问题的项目,以及它们如何解决?
答案 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 migrations和Entity 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)
您可以使用其他程序集来管理迁移。