私のプロジェクトにエンティティコードの最初の移行を使用しています。私はすでにシステムを稼働させています。しかし、私は外部キーである新しいGuid列を追加する必要があります。 - データベースを更新しようとしていますが、私は次のエラーが表示されます エンティティの最初の移行で新しいGUID列の既定値を追加
は、だから私はいくつかの研究を行なったし、 Entity Framework 6 Code first Default valueを発見しました。しかし、私はGuidのデフォルト値を設定する方法を理解できません。ここでThe ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Categories_dbo.aspnet_Roles_RoleId". The conflict occurred in database "HelpDesk", table "dbo.aspnet_Roles", column 'RoleId'.
移行されています:ここで私が試したコードがある私は(このコードに切り替える場合は、すべてのビルドエラーを取り除くことができる午前
public override void Up()
{
AddColumn("dbo.Categories", "RoleId", c => c.Guid(nullable: false, defaultValue: "4468ACB7-AD6F-471E-95CF-615115EA3A76"));
CreateIndex("dbo.Categories", "RoleId");
AddForeignKey("dbo.Categories", "RoleId", "dbo.aspnet_Roles", "RoleId");
}
public override void Down()
{
DropForeignKey("dbo.Categories", "RoleId", "dbo.aspnet_Roles");
DropIndex("dbo.Categories", new[] { "RoleId" });
DropColumn("dbo.Categories", "RoleId");
}
が、まだ私を与えることアルター表の場合にエラー私は更新-データベースを実行します。
私はこれがデフォルト値として、特定のGUIDを追加するために変換するにはどうすればよいAddColumn("dbo.Categories", "RoleId", c => c.Guid(nullable: false, identity: false, defaultValue: null));
ペドロ下記参照デフォルトではGUIDが非NULL可能ではなく、彼らはすでにデータベースにレコードを存在するので - null非許容のレコードを追加することによって、このエラーを作成しないでしょうか?既にテーブルにあるすべてのレコードがこの要件を満たしていないためです。 – djblois
ええ、それは良い点です、非常にうまくいくかもしれません! –