从 2 个基 classes 继承一个 Class 一个是我的 class 另一个是 AspNet IdentityUser

Inherit a Class from 2 base classes one is my class other is AspNet IdentityUser

我有一个 Person 实体 class,它继承自我的 BaseEntity。项目结构位于该基础实体 class 上,因此我无法更改或删除它。

我想实现另一个基础 class IdentityUser 来自 Microsoft.AspNetCore.Identity

但是出现错误:Class 'Person' 不能有多个基数 classes:'BaseEntity' 和 'IdentityUser'

有什么办法可以解决吗?

public class Person : BaseEntity, IdentityUser
{
    public int GroupId { get; set; }
    public string CardNumber { get; set; }
    public int PrivilegeId { get; set; }
    public string Name { get; set; }
    public string MiddleName { get; set; }
    public string Surname { get; set; }
    public string Password { get; set; }
    ........
    ........
    ........
}

C# 不像 C++。不可能在基础 class 上继承更多形式。也许您应该将 IdentityUser 转换为接口。

public interface IIdentityUser
{
  int GroupId { get; set; }
  int PrivilegeId { get; set; }
  // ...
}

public class Person : BaseEntity, IIdentityUser
{
  public int GroupId { get; set; }
  public string CardNumber { get; set; }
  public int PrivilegeId { get; set; }
  // ...
}

在多重继承系统中,可能会出现菱形问题(参见Wikipedia). Also there is a discussion here