C # базовые виртуальные свойства IdentityUser не видны - PullRequest
0 голосов
/ 30 марта 2019

Я создал класс AppUser, который наследуется от Microsoft.AspNet.Identity.EntityFramework, выглядит как приведенный ниже код, но базовые свойства 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; }

}

1 Ответ

2 голосов
/ 30 марта 2019

Вы должны иметь ссылку на Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll в своем проекте, добавив пакет NuGet Microsoft.AspNet.Identity.EntityFramework, потому что именно там эти свойства были объявлены. Только ссылки на библиотеку DLL, в которой объявлено AppUser, недостаточно.

...