如何将实体框架迁移与多个将不同域类映射到同一个表的数据库上下文一起使用 [英] How to use entity framework migrations with multiple dbcontexts mapping different domain classes to the same table

查看:0
本文介绍了如何将实体框架迁移与多个将不同域类映射到同一个表的数据库上下文一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用DDD方法来创建域模型。我的理解是,在有限制的上下文中,只有该上下文所需的数据才应该使用该上下文的普遍语言提供。

假设我在命名空间BuyerContext中有一个Buyer类,在命名空间SellerContext中有一个Seller类。最后,这两个域类都应该映射到数据库的Users表。为此我使用EF Core 2.1。

一个域类可能包含不属于另一个域类的字段/属性,如Buyer.CreditCardNumberSeller.Rating

为了利用DDD方法,我为每个有界上下文创建了两个数据库上下文,如BuyerDbContextSellerDbContext,并将EF配置为使用相同的Users表,但只映射有界上下文所必需的那些字段。我知道如何做到这一点,我还读到了关于为每个数据库上下文创建项目的文章。

我不知道的是我需要做的是在此设置中使用迁移,因此在初始化或迁移数据库时,它会创建一个CreditCardNumber表,其中包含一个字段CreditCardNumber(在BuyerDbContext中配置)和一个字段Rating(在SellerDbContext中配置)。

我找到的唯一解决方案是创建另一个模型,该模型可以用EntitiesDbContext这样的自己的数据库上下文来表示整个数据库,并使用该上下文进行迁移。因此,我得到了一个类User,其中有两个字段CreditCardNumberRating。我读到我可能需要禁用其他数据库上下文上的某种"初始化"。

这是正确的方法吗?

推荐答案

我找到的唯一解决方案是创建另一个类似于代表整个数据库的模型

这是正确的方法吗?

是的。就是这样,或者干脆不使用Migrations并使用其他工具管理数据库架构。

这篇关于如何将实体框架迁移与多个将不同域类映射到同一个表的数据库上下文一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆