更新 ASP.NET 标识

奥列格·什

我有一个由 ASP.NET Identity 1.0 创建的带有 ASP.NET Identity 2.0 和 DB 的项目。我想更新我的数据库。我执行以下操作:

  1. 启用迁移:

Enable-Migrations -ProjectName Web

检查上下文是否针对现有数据库...

为项目 Web 启用代码优先迁移。

  1. 添加迁移(我的项目有 2 个连接字符串,我选择了适当的,带有“旧”数据库表):

Add-Migration -Name UpdateIdentity -ProjectName Web -ConnectionStringName MainContext

脚手架迁移“UpdateIdentity”。

此迁移文件的设计器代码包括当前 Code First 模型的快照。此快照用于在您构建下一次迁移时计算对模型的更改。如果您对要包含在此迁移中的模型进行了其他更改,则可以通过再次运行“Add-Migration UpdateIdentity”来重新构建它。

但它会生成以下脚本:

public override void Up()
{
    CreateTable(
        "dbo.AspNetRoles",
        c => new
            {
                Id = c.String(nullable: false, maxLength: 128),
                Name = c.String(nullable: false, maxLength: 256),
            })
        .PrimaryKey(t => t.Id)
        .Index(t => t.Name, unique: true, name: "RoleNameIndex");

    CreateTable(
        "dbo.AspNetUserRoles",
        c => new
            {
                UserId = c.String(nullable: false, maxLength: 128),
                RoleId = c.String(nullable: false, maxLength: 128),
            })
        .PrimaryKey(t => new { t.UserId, t.RoleId })
        .ForeignKey("dbo.AspNetRoles", t => t.RoleId, cascadeDelete: true)
        .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
        .Index(t => t.UserId)
        .Index(t => t.RoleId);

    CreateTable(
        "dbo.AspNetUsers",
        c => new
            {
                Id = c.String(nullable: false, maxLength: 128),
                CompanyId = c.Int(nullable: false),
                SMSnumber = c.String(),
                FullName = c.String(),
                Email = c.String(maxLength: 256),
                EmailConfirmed = c.Boolean(nullable: false),
                PasswordHash = c.String(),
                SecurityStamp = c.String(),
                PhoneNumber = c.String(),
                PhoneNumberConfirmed = c.Boolean(nullable: false),
                TwoFactorEnabled = c.Boolean(nullable: false),
                LockoutEndDateUtc = c.DateTime(),
                LockoutEnabled = c.Boolean(nullable: false),
                AccessFailedCount = c.Int(nullable: false),
                UserName = c.String(nullable: false, maxLength: 256),
            })
        .PrimaryKey(t => t.Id)
        .Index(t => t.UserName, unique: true, name: "UserNameIndex");

    CreateTable(
        "dbo.AspNetUserClaims",
        c => new
            {
                Id = c.Int(nullable: false, identity: true),
                UserId = c.String(nullable: false, maxLength: 128),
                ClaimType = c.String(),
                ClaimValue = c.String(),
            })
        .PrimaryKey(t => t.Id)
        .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
        .Index(t => t.UserId);

    CreateTable(
        "dbo.AspNetUserLogins",
        c => new
            {
                LoginProvider = c.String(nullable: false, maxLength: 128),
                ProviderKey = c.String(nullable: false, maxLength: 128),
                UserId = c.String(nullable: false, maxLength: 128),
            })
        .PrimaryKey(t => new { t.LoginProvider, t.ProviderKey, t.UserId })
        .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
        .Index(t => t.UserId);

}

它试图从零创建表,但我需要一个脚本来修改。为什么如此以及如何创建正确的脚本?

史蒂夫·格林

EF 与之前的迁移进行了比较。如果没有,它将当前模型与空数据库进行比较。所以你需要的是创建一个初始的、无代码的迁移:

add-migration MyStartPoint -IgnoreChanges

现在下一次迁移将仅是更改。因此,在您的情况下,如果您可以回滚到身份 1,进行此迁移,更新到身份 2,添加第二次迁移,那么您将获得所需的内容。这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET标识未“保存”更新的声明

来自分类Dev

架构和 ASP.Net 标识

来自分类Dev

如何在ASP.NET Core应用程序中显示和更新自定义标识字段?

来自分类Dev

从asp.net核心标识获取applicationuser的属性

来自分类Dev

在表中添加具有ASP.NET标识的列

来自分类Dev

MVC 5和ASP.NET标识-实现混乱

来自分类Dev

在ASP.NET中标识用户所属的租户

来自分类Dev

ASP.NET MVC 5标识中的空引用

来自分类Dev

ASP.NET标识默认的ApplicationUserManager是否实现IUserEmailStore?

来自分类Dev

干净的体系结构和Asp.Net核心标识

来自分类Dev

ASP.NET WebForms“预期的标识符”错误

来自分类Dev

具有ASP.NET标识的错误消息

来自分类Dev

ASP.NET标识默认的ApplicationUserManager是否实现IUserEmailStore?

来自分类Dev

从asp.net核心标识获取applicationuser的属性

来自分类Dev

Asp.Net核心标识中的德语字符错误

来自分类Dev

JS获取cookie ASP.NET Core标识

来自分类Dev

ASP.NET Core 标识设置不起作用

来自分类Dev

从Table ASP.NET更新

来自分类Dev

更新重定向ASP .net

来自分类Dev

ASP.NET MVC复杂模型更新

来自分类Dev

Asp.Net SQL更新语句

来自分类Dev

使用HyperLink ASP.NET更新MySQL

来自分类Dev

Asp.net标签不更新

来自分类Dev

更新ASP .Net MVC中的记录

来自分类Dev

ASP NET强制TextBox更新或失去焦点

来自分类Dev

在ASP.net中更新FormView

来自分类Dev

更新asp.net文本框

来自分类Dev

更新ASP.NET网站后端代码

来自分类Dev

在asp.net的gridview中行未更新