在对 MySql 数据库执行 Enable-Migrations 命令时遇到以下错误:
PM> Enable-Migrations -ContextTypeName CodeFirstEFMySqlA1.Models.DataContext
Checking if the context targets an existing database...
System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string.
Parameter name: startIndex
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at System.Data.Entity.Migrations.DbMigrator.ScaffoldInitialCreate(String namespace)
at System.Data.Entity.Migrations.Design.MigrationScaffolder.ScaffoldInitialCreate()
at System.Data.Entity.Migrations.Design.ToolingFacade.InitialCreateScaffoldRunner.Scaffold(MigrationScaffolder scaffolder)
at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
startIndex cannot be larger than length of string.
Parameter name: startIndex
该项目是使用以下内容创建的: - ASP.NET MVC4 - EF5 Code First - MySql 数据库服务器 - MySql.Data、MySql.Data.Entity - 使用 System.Data.Entity.IDatabaseInitializer 实现了自定义数据库初始化程序,用于创建迁移历史记录表。
模型:
public class Product
{
[Key]
public int Id { get; set; }
[Required, MaxLength(100)]
public string Name { get; set; }
public int Rank { get; set; }
[MaxLength(100)]
public string Type { get; set; }
}
执行命令“Enable-Migrations”后,生成了 Configuration.cs 类,但没有生成迁移类。如果我尝试执行“添加迁移”命令,则会引发相同的错误“startIndex 不能大于字符串长度”。
我的尝试是测试 EF5 Code First 和数据库迁移功能在 MySql 数据库服务器上的使用情况。正如我所见,可以使用自定义数据库初始化程序来完成数据库创建,但是我无法使数据库迁移正常工作。
对这个问题的任何想法都非常感谢提前谢谢!