EF 核心实体 类 和清洁架构

EF Core entity classes and Clean architecture

我正在构建一个新的 ASP.NET Core 5 MVC 应用程序。我想使用 Microsoft 的 Web 应用架构电子书中概述的干净架构。

我也在研究此处提供的 eShopOnWeb 示例应用程序:

https://github.com/dotnet-architecture/eShopOnWeb

我从电子书和示例应用程序中了解到 - EF Core 实体 类(比如客户、产品、订单)将进入 ApplicationCore 项目的 Entities 文件夹。 DbContext 将在基础设施项目中。

我的困惑是:在[=14]中的这些实体类上添加[Table][DatabaseGenerated][Key]等数据注释模式属性是否可以? =] 项目?如果没有,我应该在哪里添加这些数据注释?

非常感谢您在这方面的任何建议。

谢谢。

eShopOnWeb 的示例中,它们将实体和配置模型分开。因此,这意味着要拥有干净的架构,您不需要直接在这些实体中添加注释。

您可以使用 FluentAPI,它们也在 Infrastructure/Data/Config 目录中使用。

因此,如果您有一个单独的 DataContext 项目,在这种情况下,这是使用 FluentAPI 描述您的实体的最佳位置。

关于 FluentAPI 的更多信息: https://docs.microsoft.com/en-us/ef/ef6/modeling/code-first/fluent/types-and-properties