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
我正在构建一个新的 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