[英]error following along with ASP.NET and MVC 5… error CS0246: The type or namespace could not be found
[英]ASP.NET Core - Error CS0246 The type or namespace name 'ApplicationUserRole<>' could not be found
在 ASP.NET Core-6 中,我試圖提取我的所有身份用戶及其相關角色以進行用戶管理。
應用用戶
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
public class ApplicationUser : IdentityUser
{
public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
}
應用用戶角色
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; }
}
}
應用角色
using Microsoft.AspNetCore.Identity;
namespace Core.Infrastructure.Identity
{
public class ApplicationRole : IdentityRole
{
public ICollection<ApplicationUserRole> UserRoles { get; set; }
}
}
應用程序用戶配置
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);
}
}
}
應用程序角色配置
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);
}
}
}
應用程序用戶角色配置
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();
}
}
數據庫上下文
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有疑問
我收到了這個錯誤:
錯誤 CS0246 找不到類型或命名空間名稱“ApplicationUserRole<>”(您是否缺少 using 指令或程序集引用?)
然后, <ApplicationUserRole>在ApplicationUserRoleConfigurations中突出顯示
我該如何解決這個問題?
謝謝
正如錯誤所說,您是否缺少 using 指令? 如果您認為自己不是- 然后通過顯示文件的命名空間來證明,特別是ApplicationRole.cs
和ApplicationUserRoleConfigurations.cs
。 他們很可能在不同的命名空間中!
嘗試使用:
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole>
將Core.Infrastructure.Identity
的使用添加到 class 文件
using Core.Infrastructure.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{
或者把它放在同一個命名空間中
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Core.Infrastructure.Identity
{
public class ApplicationUserRoleConfigurations : IEntityTypeConfiguration<ApplicationUserRole<string>>
{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.