我正在使用MySql.Data.Entity版本6.10.8和Entity Framework。
我正在做“代码优先”让MySql提供者创建数据库结构。
每当迁移包含索引的创建时,运行update database命令时,我的迁移就会失败。错误消息和堆栈跟踪如下:
System.FormatException:输入字符串的格式不正确。
在System.Number.ParseDouble(字符串值,NumberStyles选项,
NumberFormatInfo numfmt)在System.Convert.ToDouble(字符串值)
在
MySql.Data.Entity.MySqlMigrationSqlGenerator.Generate(CreateIndexOperation)
MySql.Data.Entity.MySqlMigrationSqlGenerator.Generate(IEnumerable 1)
迁移操作,字符串providerManifestToken)位于
System.Data.Entity.Migrations.DbMigrator.GenerateStatements(IList 1)
System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(字符串
IEnumerable 1(系统操作、布尔降级、布尔自动)
位于System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration
迁移,DbMigration lastmigation)在
System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(数据库迁移
迁移,DbMigration lastmigation)在
System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable 1)
pendingMigrations,String targetMigrationId,String lastMigrationId)
在
System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable 1)
pendingMigrations,String targetMigrationId,String lastMigrationId)
targetMigration)在
System.Data.Entity.Migrations.DbMigrator.<&燃气轮机;c\u显示类.b\u d()
在
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(操作
必须在上成功获取(数据库)
System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(操作
必须在上成功获取(数据库)
targetMigration)在
System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(字符串
targetMigration)在
System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
输入字符串的格式不正确。
如何重复:
创建带有索引的迁移文件,例如:
CreateTable(
"dbo.AspNetRoles",
c => new
{
Id = c.String(nullable: false, maxLength: 128, storeType: "nvarchar"),
Name = c.String(nullable: false, maxLength: 256, storeType: "nvarchar"),
})
.PrimaryKey(t => t.Id)
.Index(t => t.Name, unique: true, name: "RoleNameIndex"); // This line causes the exception
https://bugs.mysql.com/bug.php?id=92561
)