gpt4 book ai didi

c# - 使用 Clean Architecture 从 ApplicationCore 库中的实体引用基础设施库中的 ApplicationUser

转载 作者:行者123 更新时间:2023-12-02 00:30:26 25 4
gpt4 key购买 nike

我正在关注Microsoft Architecture Guide用于创建 ASP.NET Core Web 应用程序。

该指南实现了非常简单的整洁架构模式。

如果您查看使用整洁架构模式的示例项目,您将看到有一个 Infrastructure/Identity包含 ApplicationUser.cs 类的文件夹。

我的问题:
我正在使用 Entity Framework ,并且 ApplicationCore 类库中的业务实体之一需要包含 ApplicationUser 列表。 ApplicationCore 库不应引用任何其他项目。它包含所有接口(interface)和业务实体。如何将 ApplicationUser 类保留在我的基础设施/身份项目中,并且仍然在 ApplicationCore 项目中的一个业务实体中使用它,而不违反规则。

我知道一种解决方案是不在我的基础设施项目中存储 ApplicationUser 实体。然而,我觉得它应该在那里,因为它总是依赖于 Identity,因为它实现了 IdentityUser。

最佳答案

用户是一个实体,它应该位于核心层。

但是您不应该在核心层中使用 ApplicationUser : IdentityUser 因为它与 ASP.NET Identity 相关。核心层不应该知道哪些技术将实现该领域。

如果明天您想使用另一个库进行用户管理怎么办?这不是核心层关心的问题。

您可以做的是在核心层中使用接口(interface)或基用户类,并让基础设施层担心库选择决策。

关于c# - 使用 Clean Architecture 从 ApplicationCore 库中的实体引用基础设施库中的 ApplicationUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53663652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com