首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET核心-错误CS0246类型或命名空间名称'ApplicationUserRole<>‘找不到

ASP.NET核心-错误CS0246类型或命名空间名称'ApplicationUserRole<>‘找不到
EN

Stack Overflow用户
提问于 2022-07-31 21:15:23
回答 3查看 489关注 0票数 0

在ASP.NET核心-6中,我试图为用户管理提取我所有的身份用户及其相关角色。

ApplicationUser

代码语言:javascript
运行
复制
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
    public class ApplicationUser : IdentityUser
    {
        public ICollection<ApplicationUserRole> UserRoles { get; set; }
    }
}

ApplicationUserRole

代码语言:javascript
运行
复制
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
    public class ApplicationUserRole : IdentityUserRole<string>
    {
        public virtual ApplicationUser User { get; set; }
        public virtual ApplicationRole Role { get; set; }
    }
}

ApplicationRole

代码语言:javascript
运行
复制
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
    public class ApplicationRole : IdentityRole
    {
        public ICollection<ApplicationUserRole> UserRoles { get; set; }
    }
}

ApplicationUserConfigurations

代码语言:javascript
运行
复制
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Core.Persistence.Configurations
{
    public class ApplicationUserConfigurations : IEntityTypeConfiguration<ApplicationUser>
    {
        public void Configure(EntityTypeBuilder<ApplicationUser> builder)
        {
            builder.Property(u => u.IsActive).HasDefaultValue(true);
            builder.Property(u => u.IsAdmin).HasDefaultValue(false);
            builder.Property(u => u.IsPasswordChanged).HasDefaultValue(false);
            builder.Property(u => u.IsDeleted).HasDefaultValue(false);
        }
    }
}

ApplicationRoleConfigurations

代码语言:javascript
运行
复制
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Core.Persistence.Configurations
{
    public class ApplicationRoleConfigurations : IEntityTypeConfiguration<ApplicationRole>
    {

        public void Configure(EntityTypeBuilder<ApplicationRole> builder)
        {
            builder.HasIndex(r => r.Name).IsUnique();
            builder.Property(r => r.IsActive).HasDefaultValue(true);
        }
    }
}

ApplicationUserRoleConfigurations

代码语言:javascript
运行
复制
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{
    public void Configure(EntityTypeBuilder<ApplicationUserRole<string>> builder)
    {
        builder.HasKey(ur => new { ur.UserId, ur.RoleId });

        builder.HasOne(ur => ur.Role)
            .WithMany(r => r.UserRoles)
            .HasForeignKey(ur => ur.RoleId)
            .IsRequired();

        builder.HasOne(ur => ur.User)
            .WithMany(r => r.UserRoles)
            .HasForeignKey(ur => ur.UserId)
            .IsRequired();
    }
}

DBContext

代码语言:javascript
运行
复制
public class ApplicationDbContext
    : IdentityDbContext<ApplicationUser, ApplicationRole, string, IdentityUserClaim<string>,
    ApplicationUserRole, IdentityUserLogin<string>,
    IdentityRoleClaim<string>, IdentityUserToken<string>>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
            base.OnModelCreating(builder);

            // Customize ASP.NET Identity models and override defaults
            // such as renaming ASP.NET Identity, changing key types etc.
            builder.ApplyConfiguration(new ApplicationUserConfigurations());
            builder.ApplyConfiguration(new ApplicationUserRoleConfigurations());
            builder.ApplyConfiguration(new IdentityRoleClaimConfigurations());
            builder.ApplyConfiguration(new IdentityUserClaimConfigurations());
            builder.ApplyConfiguration(new IdentityUserLoginConfigurations());
            builder.ApplyConfiguration(new IdentityUserClaimConfigurations());
            builder.ApplyConfiguration(new ApplicationRoleConfigurations());
        }
}

我对ApplicationUserRoleConfigurations有意见

我发现了一个错误:

无法找到类型或命名空间名称‘

’(您是缺少使用指令还是程序集引用?)

然后,在ApplicationUserRoleConfigurations中突出显示

我怎么才能解决这个问题?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-07-31 21:25:38

正如错误所述,您是否缺少了一个使用指令?如果您认为您不是-然后通过显示文件的名称空间,特别是ApplicationRole.csApplicationUserRoleConfigurations.cs来证明。很可能它们在不同的名称空间中!

票数 1
EN

Stack Overflow用户

发布于 2022-07-31 23:05:01

Core.Infrastructure.Identity的使用添加到类文件中

代码语言:javascript
运行
复制
using Core.Infrastructure.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{

或者把它放在同一个名称空间中。

代码语言:javascript
运行
复制
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace Core.Infrastructure.Identity
{
    public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
    {
票数 1
EN

Stack Overflow用户

发布于 2022-07-31 23:01:46

试着使用:

代码语言:javascript
运行
复制
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73186944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档