首页 > 解决方案 > 从 2 个基类继承一个类,一个是我的类,另一个是 AspNet IdentityUser

问题描述

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

我想实现另一个IdentityUser来自的基类Microsoft.AspNetCore.Identity

但这出现了错误:“Person”类不能有多个基类:“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#entity-framework-coreasp.net-identity

解决方案


C# 不像 C++。不能继承比基类更多的形式。也许您应该将 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)。这里也有讨论。


推荐阅读