实体框架6代码优先中的表重叠数据库上下文

本文关键字:重叠 数据库 上下文 框架 代码 实体 | 更新日期: 2023-09-27 18:20:32

是否有可能创建一个表重叠的数据库上下文,以避免将数据库上下文放在库中或为相同的东西创建不同的表前缀/不同的数据库?

为了详细说明,这是一个CRM系统的例子。

数据库

- Pages
- Categories
- BlogEntries
- Comments
- Products
- Profiles
- Licenses
- Activations
- Invoices
- Customers

DB上下文

激活服务器上下文使用

- Products
- Licenses
- Activations
- Customers

客户关系上下文使用

- Products
- Customers
- Invoices

前端网站上下文使用

- Products
- Customers
- Invoices
- Profiles
- Pages
- Categories
- BlogEntries
- Comments

解决方案

我唯一能想到的办法就是。。。

  • 创建一个具有一个数据库上下文的库,用于处理所有表(包括迁移等)->关注点分离
  • 使用前缀将相关表拆分为不同的上下文/数据库拆分->相关表条目不"绑定在一起"(我必须使用guid来避免重复,也可以在一个项目中使用多个上下文)

实体框架6代码优先中的表重叠数据库上下文

这是我避免域驱动设计的主要原因,因为有这样的问题。

我只有一个大背景。。。它是一个存储库包装器,你的存储库就是它。如果你把所有东西都存储在一个大数据库中,那么你的上下文/存储库应该是一个大存储库,IMO.

在我看来,这不是一个关注分离的问题。从某种意义上说,上下文只包装存储库关注点,而不是围绕这些实体的业务逻辑。。。它做一件事:从永久存储中序列化和反序列化数据/实体。

大约4年前,我们对领域驱动设计进行了实验,发现我们反复进行关于"产品属于领域1还是领域2"的毫无意义的争论。这确实拖累了生产力,因为DDD并不适合大多数现实世界的场景,因为重叠是常态,而不是例外。