当前位置: 首页 > 编程语言 > C#

如何删除dbo.AspNetUserClaims和dbo.AspNetUserLogins表(IdentityUserClaim和IdentityUserLogin实体)?分享

时间:2023-04-10 18:32:46 C#

如何删除dbo.AspNetUserClaims和dbo.AspNetUserLogins表(IdentityUserClaim和IdentityUserLogin实体)?我们的应用程序不需要身份使用的过多“登录”和“声明”功能。如果不在数据库中创建表会很好,但我不想重新实现所有身份类......我假设它是这样的publicApplicationDbContext:IdentityDbContext{[...]protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){base.OnModelCreating(modelBuilder);modelBuilder.Ignore();modelBuilder.Ignore();根据功能描述,您可能认为这会起作用,但事实并非如此。仍将创建AspNetUserClaim和AspNetUserLogins表。这样做的正确方法是什么?这是针对您的案例的ApplicationDbContext的OnModelCreating方法的实现。其实只是IdentityDbContext的OnModelCreating方法,忽略了IdentityUserClaim和IdentityUserLogin实体。请注意,OnModelCreating重写不应调用base.OnModelCreating方法。publicclassApplicationDbContext:IdentityDbContext{protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){//需要确保子类共享同一个表varuser=modelBuilder.Entity().ToTable("AspNetUsers");user.HasMany(u=>u.Roles).WithRequired().HasForeignKey(ur=>ur.UserId);user.Ignore(u=>u.Claims);user.Ignore(u=>u.Logins);user.Property(u=>u.UserName).IsRequired().HasMaxLength(256).HasColumnAnnotation("Index",newIndexAnnotation(newIndexAttribute("UserNameIndex"){IsUnique=true}));//考虑:如果在选项上设置,u.Email是必需的吗?user.Property(u=>u.Email).HasMaxLength(256);modelBuilder.Entity().HasKey(r=>new{r.UserId,r.RoleId}).ToTable("AspNetUserRoles");varrole=modelBuilder.Entity().ToTable("AspNetRoles");role.Property(r=>r.Name).IsRequired().HasMaxLength(256).HasColumnAnnotation("Index",newIndexAnnotation(newIndexAttribute("RoleNameIndex"){IsUnique=true}));role.HasMany(r=>r.Users).WithRequired().HasForeignKey(ur=>ur.RoleId);modelBuilder.Ignore();modelBuilder.Ignore();以下是相关的代码行:user.Ignore(u=>u.Claims);user.Ignore(u=>u.Logins);modelBuilder.Ignore();modelBuilder.Ignore();根据需要,如果没有dbo.AspNetUserClaims和dbo.AspNetUserLogins表,将导致以下迁移:以上是C#学习教程:如何删除dbo.AspNetUserClaims和dbo.AspNetUserLogins表(IdentityUserClaim和IdentityUserLogin实体)?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——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,名称:"角色名称索引");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),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");本文搜集自网络,不代表立场,如涉及侵权,请点右联系管理员删除,如需转载请注明出处: