【问题标题】:Using .Net Core Identity with generic repository将 .Net Core Identity 与通用存储库一起使用
【发布时间】:2018-08-15 16:26:42
【问题描述】:

所以我现在正在努力解决这个问题,但我似乎没有成功。在我的应用程序中,我使用的是带有 Entity Framework Core 的通用存储库。 因此,我的存储库总是期望它是从 BaseEntity 的类访问的,或者是从该特定类继承的。 现在我想用它来实现.Net Core Identity。但是我的用户类是从 BaseEntity 继承的。但我也需要它从 Identity 继承以使其工作,我猜。我如何才能继续使用 Identity?

【问题讨论】:

    标签: asp.net-core-mvc entity-framework-core asp.net-core-identity


    【解决方案1】:

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

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

    【讨论】:

    • 我是否仍然可以在通用存储库中使用通用方法,如您所说的 DbContext.Set().FindAsync(id)。我似乎找不到方法
    • 如果我将 where : BaseEntity 更改为 where : 类,我可以做到。我猜这必须做并保留 IEntity
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2017-09-03
    • 2019-11-02
    • 1970-01-01
    • 2021-11-24
    • 2013-02-24
    • 1970-01-01
    相关资源
    最近更新 更多