gpt4 book ai didi

asp.net-core - Entity Framework Core 以编程方式应用迁移

转载 作者:行者123 更新时间:2023-12-03 22:55:55 26 4
gpt4 key购买 nike

我有测试和实时数据库。对于测试数据库迁移,我使用 Add-Migration ...Update-Database包管理器控制台中的语法。但是对于实时数据库,我想在应用程序启动时以编程方式进行。

以下代码对我没有帮助:

context.Database.Migrate();

我有错误 Invalid object name 'TempTenants'当我尝试将记录添加到不存在的表时。这是我的新 table 。

但我有 _EFMigrationsHistory table 。还有我所有的迁移,甚至那些没有应用的迁移。但我没有看到新表。

如果我从测试数据库中手动删除表并尝试重现错误,我将得到相同的结果。

所以, context.Database.Migrate();仅创建包含所有迁移的新数据库(如果它不存在),但不要更新(应用迁移)现有数据库。

我可以这样做吗?我该如何解决?

最佳答案

好像出了什么问题。我从 __EFMigrationsHistory 中删除了未应用的迁移(记录)表(我还需要将一些表名、主键和外键恢复到以前的状态)并再次启动应用程序。

所以,context.Database.Migrate();即使对现有数据库也应用迁移。

关于asp.net-core - Entity Framework Core 以编程方式应用迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com