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.NETMVC4-EF5コードファースト-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クラスは生成されましたが、移行クラスは生成されませんでした。「Add-Migration」コマンドを実行しようとすると、同じエラー「startIndexを文字列の長さより大きくすることはできません」が発生します。
私の試みは、EF5コードファーストとデータベース移行機能がMySqlデータベースサーバーに対してどれだけうまく使用できるかをテストすることです。私が見るように、データベースの作成はカスタムデータベース初期化子を使用して行うことができますが、データベースの移行を機能させることができませんでした。
この問題についてのご意見は大歓迎です。よろしくお願いします!!