まず、Entity Framework 6.1コードを使用しています。私はそこにある製品のリリース版が、UserName列のUserProfileテーブルに重複している製品で作業しています。このバグを削除するには、UserNameフィールドでIndexアノテーションを使用しています。エンティティフレームワークを使用してデータベースの重複エントリを削除します
class UserProfile
{
[Index("IX",IsUnique=True)]
string UserName;
string Id;
}
このように、重複エントリの問題は解決しました。しかし、今私は下位互換性がありません。すでにリリース製品を使用していて、データベースに重複したエントリがある顧客は、既存のデータベースを使用できません。
私は、エンティティフレームワークを使用して、マイグレーションを作成して、それがすでに重複したエントリを持っている既存のデータベースの世話をしていません。この
public partial class UserConcurrencyFix : DbMigration
{
public override void Up()
{
CreateIndex("dbo.UserProfiles", "UserName", unique: true);
}
public override void Down()
{
DropIndex("dbo.UserProfiles", new[] { "UserName" });
}
}
このようにデータベースを更新します。すでにユーザーによって使用されているデータベースから重複を削除し、重複するエントリを持つ方法はありますか?
実際にこの重複排除をデータ損失なしで自動化できますか?アップグレードする前に、ユーザーが自分の手順に従って世話をしてはいけませんか? –