我创建了一个继承自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; }
}
答案 0 :(得分:2)
您必须通过添加NuGet包Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll
在项目中引用Microsoft.AspNet.Identity.EntityFramework
,因为这是声明这些属性的地方。仅引用声明了AppUser
的DLL是不够的。