C# IdentityUser 的基本虚拟属性不可见

C# The base virtual properties of IdentityUser are not visible

我创建了一个继承自 Microsoft.AspNet.Identity.EntityFramework 的 AppUser class,看起来像下面的代码,但是 IdentityUser 的基本属性不可见,除非我覆盖它们? IdentityUser 的 public 虚拟字段不应该通过 AppUser class 继承来访问吗?

这发生在一个 'class' 项目中,输出是一个 DLL,目标是 .Net 4.6.2,我想我有所有需要的包。我可以使用 AppUser class;创建用户、创建角色、将用户添加到角色等。只是想不通为什么这里的继承行为似乎与我的其他项目不同?

public class AppUser : IdentityUser
{
    // why do I need to override these to get access to them
    public override string Id { get => base.Id; set => base.Id = value; }
    public override string Email { get => base.Email; set => base.Email = value; }
    public override string UserName { get => base.UserName; set => base.UserName = value; }
    public override string PasswordHash { get => base.PasswordHash; set => base.PasswordHash = value; }

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }

    [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public DateTime CreateDate { get; set; }

}

您必须通过添加 NuGet 包 Microsoft.AspNet.Identity.EntityFramework 在您的项目中引用 Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll,因为这是声明这些属性的地方。仅引用声明 AppUser 的 DLL 是不够的。