【发布时间】:2021-05-16 13:09:05
【问题描述】:
我们在数据层中使用 Entity Framework Core,发现当对包含大量数据(数百万行)的表执行大量操作时,迁移速度非常慢。
例如,目前我们正在调整整个数据库中字符串 (varchar) 列的大小。随着每列长度的更改,EF 将删除所有表索引和约束并重新创建它们。例如,如果我们有 1 个索引和 10 个列发生了变化,EF 将删除并重新创建索引 10 次,而不是简单地删除一次索引,更改列,然后重新创建索引。
在我们的一些表格中,单个列更改需要 30 多分钟才能完成,而我们想要进行大约 200 列更改。
是否可以更改此行为以在迁移开始时删除所有索引并在结束时重新创建它们?
【问题讨论】:
-
看起来像是 EF Core 的问题。在这里,我们需要特定迁移的示例,它可以将想法重新创建 10 次。
-
我认为不需要具体的例子。问题很简单,是否可以在迁移开始时全部删除索引,执行多个操作并在迁移结束时重新创建索引。
标签: entity-framework-core database-migration entity-framework-migrations