使用 Entity Framework 核心数据库优先方法如何将我的实体与基础设施层分开?
With Entity Framework Core database first approach how do I separate my entity from infrastructure layer?
我正在使用 ASP.NET 核心和 Entity Framework 核心构建 REST API,采用数据库优先方法和干净的架构。
我的数据库已经由 DBA 团队创建和维护 - 这就是为什么我需要使用 Entity Framework Core 和数据库优先方法,我们需要使用 Scaffold-DbContext
进行逆向工程基础设施层中的命令。
对于干净的架构,实体应放置在与基础设施层分开的 Core
层中,因此我们将如何做到这一点以及如何将您的 DbContext
解析为接口。
我看到两个选项:
您接受对 EF 的依赖,将生成的实体放入您的核心项目中,从而接受清理架构的违规行为。
您在不依赖于 EF 的核心项目中创建自己的实体,并使用存储库模式在您的实体和来自 EF 的实体之间"map"。
备选方案 1 简单且便宜。备选方案 2 让您独立于 EF,并为您的 dba 团队提供一些抽象。根据对您的项目更重要的因素进行选择。
我正在使用 ASP.NET 核心和 Entity Framework 核心构建 REST API,采用数据库优先方法和干净的架构。
我的数据库已经由 DBA 团队创建和维护 - 这就是为什么我需要使用 Entity Framework Core 和数据库优先方法,我们需要使用 Scaffold-DbContext
进行逆向工程基础设施层中的命令。
对于干净的架构,实体应放置在与基础设施层分开的 Core
层中,因此我们将如何做到这一点以及如何将您的 DbContext
解析为接口。
我看到两个选项:
您接受对 EF 的依赖,将生成的实体放入您的核心项目中,从而接受清理架构的违规行为。
您在不依赖于 EF 的核心项目中创建自己的实体,并使用存储库模式在您的实体和来自 EF 的实体之间"map"。
备选方案 1 简单且便宜。备选方案 2 让您独立于 EF,并为您的 dba 团队提供一些抽象。根据对您的项目更重要的因素进行选择。