如何将IdentityUser转换为BaseEntity

时间:2019-06-01 21:33:54

标签: c#

我有用户模型,例如:

    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 个答案:

答案 0 :(得分:1)

由于在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;
    }
}