gpt4 book ai didi

c# - EF6 迁移失败

转载 作者:行者123 更新时间:2023-11-29 22:04:46 25 4
gpt4 key购买 nike

我正在尝试使用 EF 6 创建 MYSQL 数据库的迁移,但遇到了引发 MYSQL 异常并通知未找到表的问题。从我看来,问题来自于迁移有一个 dbo。语句上的前缀。手动更改迁移文件并删除 dbo。部分作品。

这里奇怪的是,只有当存在第二个迁移时才会发生错误,并且在检查第一个迁移文件后我注意到它也有一个 dbo。前缀,但数据库创建仍然正确发生,并且只有在数据库迁移到第二个版本时才会引发异常。

创建数据库时没有 dbo。表或任何其他数据库部分的前缀,即使在 dbo.前缀存在于初始创建迁移中,所以这让我想知道一定有代码的某些部分来处理它?<​​/p>

迁移代码:

public partial class Update1 : DbMigration
{
public override void Up()
{
AddColumn("dbo.ProductOrderLine", "SomeData_Id", c => c.Int());
CreateIndex("dbo.ProductOrderLine", "SomeData_Id");
AddForeignKey("dbo.ProductOrderLine", "SomeData_Id", "dbo.User", "UserId");
}

public override void Down()
{
DropForeignKey("dbo.ProductOrderLine", "SomeData_Id", "dbo.User");
DropIndex("dbo.ProductOrderLine", new[] { "SomeData_Id" });
DropColumn("dbo.ProductOrderLine", "SomeData_Id");
}
}

降级时出现异常,有趣的是升级成功了。

Reverting migrations: [201508280829293_Update1].
Reverting explicit migration: 201508280829293_Update1.
alter table `dbo.ProductOrderLine` drop foreign key `FK_dbo.ProductOrderLine_dbo.User_SomeData_Id`
MySql.Data.MySqlClient.MySqlException (0x80004005): Table '_gizmo_db.dbo.productorderline' doesn't exist

在这里我可以运行数据库更新,但降级失败后。

最佳答案

好吧,问题似乎是我没有将 MySqlMigrationCodeGenerator 设置为迁移代码生成器,这导致生成 dbo 前缀,从而导致删除/创建问题。

关于c# - EF6 迁移失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266420/

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