加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

执行迁移EF core 2.0时出错,将Identity id从string更改为int

发布时间:2020-12-15 19:53:06 所属栏目:asp.Net 来源:网络整理
导读:场景: 我从同事那里收到了ASP.NET CORE中的自动生成项目.帐户/管理服务有自动生成的代码.此代码包括ApplicationUser Class,DBContext和迁移文件夹,其中包含00000000000000_CreateIdentitySchema.cs和20180323155805_Snapshot.cs.我一直在尝试将我的User类更
场景:

我从同事那里收到了ASP.NET CORE中的自动生成项目.帐户/管理服务有自动生成的代码.此代码包括ApplicationUser Class,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以自动处理此问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读