シナリオ:
同僚からASP.NETCOREで自動生成されたプロジェクトを受け取りました。アカウント/マネージドサービス用に自動生成されたコードがあります。このコードには、ApplicationUserクラス、DBContext、および00000000000000_CreateIdentitySchema.csと20180323155805_Snapshot.csの移行フォルダーが含まれています。 Userクラスを整数IDに変更しようとしています。これを行うために、IdentityUserにジェネリックを追加しました。
public class ApplicationUser : IdentityUser**<int>**
{
}
ApplicationRoleクラスも、移行ファイルで作成される前に作成する必要がありました。
public class ApplicationRole : IdentityRole<int>
{
}
また、コンテキストを変更しました。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser,
**ApplicationRole, int**>
移行ファイルには、ログインスキームが作成されています。変更を追加した後、新しい移行を追加します。移行の追加中に、次のエラーが発生しました。
列のIDENTITYプロパティを変更するには、列を削除して再作成する必要があります。
生成された移行を段階的に更新するには、更新する必要があります。 AlterColumn
呼び出しを次の操作に置き換えます。
また、列を参照するすべての制約を再構築(削除して再作成)する必要がある場合もあります。
それは些細なことではありません、それがEFが現在それを処理しない理由です。機能リクエスト #329 これを自動的に処理するようにEFを更新することです。