我创建了一个继承自Microsoft.AspNet.Identity.EntityFramework的AppUser类,看起来像下面的代码,但除非我覆盖它们,否则IdentityUser的基本属性是不可见的?不应该通过AppUser类继承来访问IdentityUser的公共虚拟字段吗?
这发生在一个“类”项目中,输出是一个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.AspNetCore.Identity.EntityFrameworkCore.dll
在项目中引用Microsoft.AspNet.Identity.EntityFramework
,因为这是声明这些属性的地方。仅引用声明AppUser
的DLL是不够的。