我创建了一个继承自 Microsoft.AspNet.Identity.EntityFramework 的 AppUser 类,看起来像下面的代码,但 IdentityUser 的基本属性不可见,除非我覆盖它们?IdentityUser 的公共虚拟字段不应该通过 AppUser 类通过继承来访问吗?
这发生在一个"类"项目中,输出是一个 DLL,面向 .Net 4.6.2,我想我拥有所有必需的包。我可以使用 AppUser 类;创建用户、创建角色、将用户添加到角色等。只是无法弄清楚为什么继承行为在这里的工作方式似乎与我的其他项目不同?
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 是不够的。