gpt4 book ai didi

登录 Asp.Net MVC 上的 Sql 错误用户 ID、角色 ID 无效列名

转载 作者:行者123 更新时间:2023-12-01 09:24:58 25 4
gpt4 key购买 nike

我有一个使用 Entity Framework 6. Identity 2. MVC 4.我将尝试解释导致此错误的原因:

异常详细信息:System.Data.SqlClient.SqlException:列名“UserId”无效。列名“用户 ID”无效。列名“RoleId”无效。

源错误://在 Account Controller.cs 中

  {
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}

首先,我在实体设计器中添加了 AspNetUser 表和自定义表“CustomerTicketInfo”之间的关系。我从模型中更新了 Db 并运行了这个自动生成的 Sql:

-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 08/13/2014 10:15:49
-- Generated from EDMX file: C:\Projects\DevTeam\Logistics Mobile MVC\LMSMobile\LMSMobile\Models\LogisticsManagementModel.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [LTGLogisticsManagement];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_dbo_AspNetUserClaims_dbo_AspNetUsers_User_Id]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetUserClaims] DROP CONSTRAINT [FK_dbo_AspNetUserClaims_dbo_AspNetUsers_User_Id];
GO
IF OBJECT_ID(N'[dbo].[FK_dbo_AspNetUserLogins_dbo_AspNetUsers_UserId]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetUserLogins] DROP CONSTRAINT [FK_dbo_AspNetUserLogins_dbo_AspNetUsers_UserId];
GO
IF OBJECT_ID(N'[dbo].[FK_AspNetUserRoles_AspNetRole]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetUserRoles] DROP CONSTRAINT [FK_AspNetUserRoles_AspNetRole];
GO
IF OBJECT_ID(N'[dbo].[FK_AspNetUserRoles_AspNetUser]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetUserRoles] DROP CONSTRAINT [FK_AspNetUserRoles_AspNetUser];
GO
IF OBJECT_ID(N'[dbo].[FK_AspNetRoles_AspNetRoles]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetRoles] DROP CONSTRAINT [FK_AspNetRoles_AspNetRoles];
GO
IF OBJECT_ID(N'[dbo].[FK_AspNetUsers_AspNetUsers]', 'F') IS NOT NULL
ALTER TABLE [dbo].[AspNetUsers] DROP CONSTRAINT [FK_AspNetUsers_AspNetUsers];
GO
IF OBJECT_ID(N'[dbo].[FK_AspNetUserCustomerTicketInfo]', 'F') IS NOT NULL
ALTER TABLE [dbo].[CustomerTicketInfoes] DROP CONSTRAINT [FK_AspNetUserCustomerTicketInfo];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[CustomerTicketInfoes]', 'U') IS NOT NULL
DROP TABLE [dbo].[CustomerTicketInfoes];
GO
IF OBJECT_ID(N'[dbo].[AspNetRoles]', 'U') IS NOT NULL
DROP TABLE [dbo].[AspNetRoles];
GO
IF OBJECT_ID(N'[dbo].[AspNetUserClaims]', 'U') IS NOT NULL
DROP TABLE [dbo].[AspNetUserClaims];
GO
IF OBJECT_ID(N'[dbo].[AspNetUserLogins]', 'U') IS NOT NULL
DROP TABLE [dbo].[AspNetUserLogins];
GO
IF OBJECT_ID(N'[dbo].[AspNetUsers]', 'U') IS NOT NULL
DROP TABLE [dbo].[AspNetUsers];
GO
IF OBJECT_ID(N'[dbo].[AspNetUserRoles]', 'U') IS NOT NULL
DROP TABLE [dbo].[AspNetUserRoles];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'CustomerTicketInfoes'
CREATE TABLE [dbo].[CustomerTicketInfoes] (
[Oid] uniqueidentifier NOT NULL,
[Commodity] nvarchar(100) NULL,
[ContractLocale] nvarchar(100) NULL,
[ArrivalNumber] nvarchar(100) NULL,
[PickUpNumber] nvarchar(100) NULL,
[OriginSignature] nvarchar(100) NULL,
[DestinationSignature] nvarchar(100) NULL,
[OptimisticLockField] int NULL,
[GCRecord] int NULL,
[Trucker] nvarchar(50) NULL,
[AspNetUserId] varchar(50) NOT NULL
);
GO

-- Creating table 'AspNetRoles'
CREATE TABLE [dbo].[AspNetRoles] (
[Id] varchar(50) NOT NULL,
[Name] nvarchar(max) NOT NULL
);
GO

-- Creating table 'AspNetUserClaims'
CREATE TABLE [dbo].[AspNetUserClaims] (
[Id] varchar(50) NOT NULL,
[ClaimType] nvarchar(max) NULL,
[ClaimValue] nvarchar(max) NULL,
[User_Id] varchar(50) NOT NULL
);
GO

-- Creating table 'AspNetUserLogins'
CREATE TABLE [dbo].[AspNetUserLogins] (
[UserId] varchar(50) NOT NULL,
[LoginProvider] nvarchar(128) NOT NULL,
[ProviderKey] nvarchar(128) NOT NULL
);
GO

-- Creating table 'AspNetUsers'
CREATE TABLE [dbo].[AspNetUsers] (
[Id] varchar(50) NOT NULL,
[UserName] nvarchar(max) NULL,
[PasswordHash] nvarchar(max) NULL,
[SecurityStamp] nvarchar(max) NULL,
[Discriminator] nvarchar(128) NOT NULL
);
GO

-- Creating table 'AspNetUserRoles'
CREATE TABLE [dbo].[AspNetUserRoles] (
[AspNetRoles_Id] varchar(50) NOT NULL,
[AspNetUsers_Id] varchar(50) NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [Oid] in table 'CustomerTicketInfoes'
ALTER TABLE [dbo].[CustomerTicketInfoes]
ADD CONSTRAINT [PK_CustomerTicketInfoes]
PRIMARY KEY CLUSTERED ([Oid] ASC);
GO

-- Creating primary key on [Id] in table 'AspNetRoles'
ALTER TABLE [dbo].[AspNetRoles]
ADD CONSTRAINT [PK_AspNetRoles]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'AspNetUserClaims'
ALTER TABLE [dbo].[AspNetUserClaims]
ADD CONSTRAINT [PK_AspNetUserClaims]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [UserId], [LoginProvider], [ProviderKey] in table 'AspNetUserLogins'
ALTER TABLE [dbo].[AspNetUserLogins]
ADD CONSTRAINT [PK_AspNetUserLogins]
PRIMARY KEY CLUSTERED ([UserId], [LoginProvider], [ProviderKey] ASC);
GO

-- Creating primary key on [Id] in table 'AspNetUsers'
ALTER TABLE [dbo].[AspNetUsers]
ADD CONSTRAINT [PK_AspNetUsers]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [AspNetRoles_Id], [AspNetUsers_Id] in table 'AspNetUserRoles'
ALTER TABLE [dbo].[AspNetUserRoles]
ADD CONSTRAINT [PK_AspNetUserRoles]
PRIMARY KEY CLUSTERED ([AspNetRoles_Id], [AspNetUsers_Id] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [User_Id] in table 'AspNetUserClaims'
ALTER TABLE [dbo].[AspNetUserClaims]
ADD CONSTRAINT [FK_dbo_AspNetUserClaims_dbo_AspNetUsers_User_Id]
FOREIGN KEY ([User_Id])
REFERENCES [dbo].[AspNetUsers]
([Id])
ON DELETE CASCADE ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_dbo_AspNetUserClaims_dbo_AspNetUsers_User_Id'
CREATE INDEX [IX_FK_dbo_AspNetUserClaims_dbo_AspNetUsers_User_Id]
ON [dbo].[AspNetUserClaims]
([User_Id]);
GO

-- Creating foreign key on [UserId] in table 'AspNetUserLogins'
ALTER TABLE [dbo].[AspNetUserLogins]
ADD CONSTRAINT [FK_dbo_AspNetUserLogins_dbo_AspNetUsers_UserId]
FOREIGN KEY ([UserId])
REFERENCES [dbo].[AspNetUsers]
([Id])
ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating foreign key on [AspNetRoles_Id] in table 'AspNetUserRoles'
ALTER TABLE [dbo].[AspNetUserRoles]
ADD CONSTRAINT [FK_AspNetUserRoles_AspNetRole]
FOREIGN KEY ([AspNetRoles_Id])
REFERENCES [dbo].[AspNetRoles]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [AspNetUsers_Id] in table 'AspNetUserRoles'
ALTER TABLE [dbo].[AspNetUserRoles]
ADD CONSTRAINT [FK_AspNetUserRoles_AspNetUser]
FOREIGN KEY ([AspNetUsers_Id])
REFERENCES [dbo].[AspNetUsers]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_AspNetUserRoles_AspNetUser'
CREATE INDEX [IX_FK_AspNetUserRoles_AspNetUser]
ON [dbo].[AspNetUserRoles]
([AspNetUsers_Id]);
GO

-- Creating foreign key on [Id] in table 'AspNetRoles'
ALTER TABLE [dbo].[AspNetRoles]
ADD CONSTRAINT [FK_AspNetRoles_AspNetRoles]
FOREIGN KEY ([Id])
REFERENCES [dbo].[AspNetRoles]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Id] in table 'AspNetUsers'
ALTER TABLE [dbo].[AspNetUsers]
ADD CONSTRAINT [FK_AspNetUsers_AspNetUsers]
FOREIGN KEY ([Id])
REFERENCES [dbo].[AspNetUsers]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [AspNetUserId] in table 'CustomerTicketInfoes'
ALTER TABLE [dbo].[CustomerTicketInfoes]
ADD CONSTRAINT [FK_AspNetUserCustomerTicketInfo]
FOREIGN KEY ([AspNetUserId])
REFERENCES [dbo].[AspNetUsers]
([Id])
ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_AspNetUserCustomerTicketInfo'
CREATE INDEX [IX_FK_AspNetUserCustomerTicketInfo]
ON [dbo].[CustomerTicketInfoes]
([AspNetUserId]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------

运行该 Sql 后,它创建了一个名为 CustomerTicketInfoes 的新表,该表具有我想要的 AspNetUser 关系(但它不再使用我最初创建的表)。

然后我使用 PM 启用了迁移。并且我从数据库更新了模型,因为创建了一个新表。

我不确定这是否与错误有关。但当我收到上述错误时,这就是我正在做的事情。只需尝试登录网络应用程序。使用注册的用户名 + 通行证。我还尝试了一个不同的浏览器,认为它与 cookie 有关。还是失败了。

我们将不胜感激。

最佳答案

  1. 重命名表AspNetUserRoles

    的字段
    a. From `AspNetRole_Id` to `RoleId`

    b. From `AspNetUser_Id` to `UserId`
  2. 从数据库更新模型

  3. 尝试登录它现在可以正常工作了。

关于登录 Asp.Net MVC 上的 Sql 错误用户 ID、角色 ID 无效列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com