Как конвертировать IdentityUser в BaseEntity - PullRequest
0 голосов
/ 02 июня 2019

У меня есть пользовательская модель, например:

    public class User : IdentityUser<Guid>
    {
        public string FullName { get; set; }
       //... more lines
    }

Теперь мне нужно использовать некоторые методы для пользователя, которые сделаны для базовой сущности, поэтому я хочу добавить базовую сущность, но она не работает.

    public class User : IdentityUser<Guid>, BaseEntity
    {
        public string FullName { get; set; }
       //... more lines
    }

Я попытался создать нового пользователя только с BaseEntity, и тогда это сработало, но потом я потерял все методы для IdentityUser, которые мне не нужны.

1 Ответ

1 голос
/ 02 июня 2019

Поскольку множественное наследование невозможно в C #, вы можете иметь IdentityUser в качестве поля и обернуть нужные свойства и методы (при условии, что IdentityUser не ваш собственный класс):

public class User : BaseEntity
{
    private readonly IdentityUser<Guid> _identityUser;
    public string FullName { get; set; }

    public string UserName
    {
        get { return _identityUser.UserName; }
        set { _identityUser.UserName = value; }
    }

    public string Id
    {
        get { return _identityUser.Id; }
        set { _identityUser.Id = value ; } 
    }

    // ... etc.

    public User(IdentityUser<Guid> identityUser)
    {
        _identityUser = identityUser;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...