从 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。
我有一个 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。