首页 > 解决方案 > 将 .Net Core Identity 与通用存储库一起使用

问题描述

所以我现在试图解决这个问题一段时间,但我似乎没有成功。在我的应用程序中,我使用的是带有 Entity Framework Core 的通用存储库。因此,我的存储库总是期望它是从一个 BaseEntity 的类或从该特定类继承的类访问的。现在我想用它来实现.Net Core Identity。但是我的用户类是从 BaseEntity 继承的。但我也需要它从 Identity 继承以使其工作,我猜。我怎样才能仍然使用身份?

标签: asp.net-core-mvcentity-framework-coreasp.net-core-identity

解决方案


C# 只支持单继承。您不能从两个不同的类继承。此外,您的身份用户类必须继承自IdentityUser. 你别无选择。因此,您能做的最好的事情就是让您的用户类和其他实体类实现相同的接口,即IEntity. 然后,不要将泛型类型限制为BaseEntityIEntity而是使用。

当然,这意味着您将产生一些代码重复,因为您必须IEntity分别在BaseEntity您的用户类和用户类上实现。然而,这是不可避免的。


推荐阅读