C# 将用户ASP.NET网页表迁移到MVC 6

C# 将用户ASP.NET网页表迁移到MVC 6,c#,asp.net,asp.net-mvc,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Asp.net Core Mvc,信息 我想通过重新开始,将我的ASP.NET网页项目“升级”为ASP.NET MVC项目,它只有几页,对学习很有好处 问题 当前项目包含一些用于身份验证的用户 ASP.NET在我的数据库中创建了几个表: 角色 轮廓 使用者 但是当我使用MVC项目时,我看到它为身份验证生成了不同的表: AspNetUserLogins AspNetUserRoles AspNetUser 问题 如何迁移我的用户,或者如何告诉ASP.net使用旧表?问候您可能希望在MVC Core中从数据库优先的方法开

信息
我想通过重新开始,将我的ASP.NET网页项目“升级”为ASP.NET MVC项目,它只有几页,对学习很有好处

问题
当前项目包含一些用于身份验证的用户 ASP.NET在我的数据库中创建了几个表:

  • 角色
  • 轮廓
  • 使用者
但是当我使用MVC项目时,我看到它为身份验证生成了不同的表:

  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUser
问题

如何迁移我的用户,或者如何告诉ASP.net使用旧表?

问候您可能希望在
MVC Core
中从数据库优先的方法开始,但它与您目前看到的略有不同,让我解释一下添加数据库的步骤:

  • 安装实体框架:
运行
安装包Microsoft.EntityFrameworkCore.SqlServer

要从现有数据库启用反向工程,我们还需要安装几个其他软件包

  • 运行安装包
    Microsoft.EntityFrameworkCore.Tools–Pre
  • 运行安装包
    Microsoft.EntityFrameworkCore.Design
  • 运行安装包
    Microsoft.EntityFrameworkCore.SqlServer.Design
  • 现在对您的模型进行反向工程:

    • 运行以下命令从现有模型创建模型 数据库如果您收到一个说明术语的错误 “Scaffold DbContext”未被识别为cmdlet的名称,则 关闭并重新打开Visual Studio
    Scaffold DbContext“Server=(localdb)\mssqllocaldb;Database=DataBaseName;Trusted_Connection=True;“Microsoft.EntityFrameworkCore.SqlServer-OutputDir Models

    逆向工程过程基于现有数据库的模式创建实体类和派生上下文。实体类是简单的C#对象,表示要查询和保存的数据。现在您可以创建一个
    DbContext
    类并开始使用您的数据库,到目前为止关于数据库的问题已经结束,现在我建议您阅读一下。

    多亏了

    并根据我的需要进行编辑:

        /****** Object: Table [dbo].[AspNetRoles] Script Date: 11/14/2013 1:56:03 PM ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    IF OBJECT_ID('dbo.AspNetUserRoles', 'U') IS NOT NULL
        DROP TABLE [dbo].[AspNetUserRoles]
    GO
    IF OBJECT_ID('dbo.AspNetUserLogins', 'U') IS NOT NULL
        DROP TABLE [dbo].[AspNetUserLogins]
    GO
    IF OBJECT_ID('dbo.AspNetUserClaims', 'U') IS NOT NULL
        DROP TABLE [dbo].[AspNetUserClaims]
    GO
    IF OBJECT_ID('dbo.AspNetRoles', 'U') IS NOT NULL
        DROP TABLE [dbo].[AspNetRoles]
    GO
    IF OBJECT_ID('dbo.AspNetUsers', 'U') IS NOT NULL
        DROP TABLE [dbo].[AspNetUsers]
    GO
    
    CREATE TABLE [dbo].[AspNetUsers] (
        [AccessFailedCount]    INT            NOT NULL,
        [Email]                NVARCHAR (MAX) NULL,
        [EmailConfirmed]       BIT            DEFAULT ((0)) NULL,
        [Id]                   NVARCHAR (128) NOT NULL,
        [LockoutEnabled]       BIT            DEFAULT ((0)) NULL,
        [LockoutEndDateUtc]           DATETIME2 (7)  NULL,
        [PasswordHash]         NVARCHAR (MAX) NULL,
        [PhoneNumber]          NVARCHAR (MAX) NULL,
        [PhoneNumberConfirmed] BIT            DEFAULT ((0)) NULL,
        [SecurityStamp]        NVARCHAR (MAX) NULL,
        [TwoFactorEnabled]     BIT            DEFAULT ((0)) NULL,
        [UserName]             NVARCHAR (MAX) NULL,
        [CreateDate]                              DATETIME       NULL,
        [ConfirmationToken]                       NVARCHAR (128) NULL,
        [IsConfirmed]                             BIT            DEFAULT ((0)) NULL,
        [LastPasswordFailureDate]                 DATETIME       NULL,
        [PasswordFailuresSinceLastSuccess]        INT            DEFAULT ((0)) NULL,
        [PasswordChangedDate]                     DATETIME       NULL,
        [PasswordVerificationToken]               NVARCHAR (128) NULL,
        [PasswordVerificationTokenExpirationDate] DATETIME       NULL,
        CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    GO
    CREATE TABLE [dbo].[AspNetRoles] (
        [Id]   NVARCHAR (128) NOT NULL,
        [Name] NVARCHAR (MAX) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    GO
    CREATE TABLE [dbo].[AspNetUserRoles] (
        [UserId] NVARCHAR (128) NOT NULL,
        [RoleId] NVARCHAR (128) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
        CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE,
        CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_RoleId]
        ON [dbo].[AspNetUserRoles]([RoleId] ASC);
    GO
    CREATE NONCLUSTERED INDEX [IX_UserId]
        ON [dbo].[AspNetUserRoles]([UserId] ASC);
    GO
    CREATE TABLE [dbo].[AspNetUserLogins] (
        [UserId]        NVARCHAR (128) NOT NULL,
        [LoginProvider] NVARCHAR (128) NOT NULL,
        [ProviderKey]   NVARCHAR (128) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUserLogins] PRIMARY KEY CLUSTERED ([UserId] ASC, [LoginProvider] ASC, [ProviderKey] ASC),
        CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_UserId]
        ON [dbo].[AspNetUserLogins]([UserId] ASC);
    GO
    CREATE TABLE [dbo].[AspNetUserClaims] (
        [Id]         INT            IDENTITY (1, 1) NOT NULL,
        [ClaimType]  NVARCHAR (MAX) NULL,
        [ClaimValue] NVARCHAR (MAX) NULL,
        [UserId]    NVARCHAR (128) NOT NULL,
        CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY CLUSTERED ([Id] ASC),
        CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_User_Id] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_User_Id]
        ON [dbo].[AspNetUserClaims]([UserId] ASC);
    GO
    
    INSERT INTO AspNetUsers(Id, UserName, PasswordHash, SecurityStamp,
    CreateDate, ConfirmationToken, IsConfirmed, LastPasswordFailureDate, PasswordFailuresSinceLastSuccess,
    PasswordChangedDate, PasswordVerificationToken, PasswordVerificationTokenExpirationDate,AccessFailedCount,LockoutEndDateUtc)
    SELECT Users.UserId, Users.UserName, Memberships.Password, 
    Memberships.PasswordSalt,  CreateDate, 
    null, 1, '1/1/1977', 0,
    '1/1/2017', null, '1/1/2100',0,'1/1/1977'
    FROM Users
    LEFT OUTER JOIN Memberships ON Users.UserId = Memberships.UserId
    GO
    
    INSERT INTO AspNetRoles(Id, Name)
    SELECT RoleId, RoleName
    FROM Roles
    GO
    
    INSERT INTO AspNetUserRoles(UserId, RoleId)
    SELECT UserId, RoleId
    FROM UsersInRoles
    GO
    
    --INSERT INTO AspNetUserLogins(UserId, LoginProvider, ProviderKey)
    --SELECT UserId, Provider, ProviderUserId
    --FROM Memberships
    --GO