EF Core 3.0的Pomelo.EntityFrameworkCore.MySql错误

时间:2019-11-12 15:17:42

标签: mysql entity-framework-core

我正在尝试使用Pomelo.EntityFrameworkCore.MySql和EF Core 3.0连接到MySQL数据库

我遵循了柚子提供的指南。

运行Web应用程序时,可以看到成功创建了一些表。但是,以GUID为ID的表出现以下错误:

An error occured during migration
MySql.Data.MySqlClient.MySqlException (0x80004005): BLOB/TEXT column 'Id' used in key specification without a key length

如何解决此问题?如何在MySql中使用GUID作为ID以及如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方案,不确定是不是一种解决方法,还是这是正常的解决方法。

只需在您的DataContext类中添加以下内容:

protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            builder.Entity<AppUser>(entity => entity.Property(m => m.Id).HasMaxLength(255));
        }

此外,如果您要从另一个数据库引擎迁移到MySQL,最好删除所有迁移并创建新迁移,这样它将实现上述代码并使用Pomelo为MySQL正确创建迁移

我希望这对像我一样被困的人有帮助