EF Core 实体类和 Clean 架构

Web*_*Dev 5 c# entity-framework-core .net-core asp.net-core clean-architecture

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

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

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

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

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

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

谢谢。

Emi*_*sic 2

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

您可以使用 FluentAPI,就像它们在Infrastructure/Data/Config目录中使用的那样。

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

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