使用 Clean Architecture 从 ApplicationCore 库中的实体引用 Infrastructure 库中的 ApplicationUser

Bla*_*ell 8 c# entity-framework-core asp.net-core-mvc asp.net-core clean-architecture

我正在按照Microsoft 架构指南创建 ASP.NET Core Web 应用程序。

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

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

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

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

Kha*_*yen 0

在清洁架构中:

\n\n

应用核心类型

\n\n

\xe2\x80\xa2 实体(持久化的业务模型类)和聚合

\n\n

\xe2\x80\xa2 接口

\n\n

\xe2\x80\xa2 服务

\n\n

\xe2\x80\xa2 DTO

\n\n

\xe2\x80\xa2 规格

\n\n

\xe2\x80\xa2 异常

\n\n

基础设施类型

\n\n

\xe2\x80\xa2 EF Core 类型(DbContext、迁移)

\n\n

\xe2\x80\xa2 数据访问实现类型(存储库)

\n\n

\xe2\x80\xa2 基础设施特定服务(FileLogger、SmtpNotifier 等)

\n\n

所以ApplicationUser.cs是一个实体,它应该位于Application Core中

\n

  • 投反对票,因为我认为它不能回答问题。 (3认同)