gpt4 book ai didi

entity-framework - DDD 和 EF 代码优先迁移

转载 作者:行者123 更新时间:2023-12-04 07:22:52 25 4
gpt4 key购买 nike

我最近看了Domain-Driven Design Fundamentals在 Steve Smith 和 Julie Lerman 的 Pluralsight 上,这是一门很棒的类(class),但是我是否有与 EF Code-First 和 DDD 相关的问题,我了解了丰富实体的概念并且实际上了解了 DDD 的大部分内容,但我很难理解在 DDD 中使用 EF Code-First。假设我有两个有界上下文,并且在每个有界上下文中都有一个 Customer 实体,共享一个 Id 和 Name。

namespace Accounts
{
public class Customer : Entity
{
public Guid Id { get; private set; }
public string Name { get; private set; }
public string AccountNo { get; private set; }
}
}

namespace Deliveries
{
public class Customer : Entity
{
public Guid Id { get; private set; }
public string Name { get; private set; }
public Address DeliveryAddress { get; private set; }
}
}

在每个有界上下文中,我都有一个带有 DbContext 的数据层,为了参数调用一个 Accounts.AccountsDbContext 和 Deliveries.DeliveriesDbContext(每个都有一个 IDbSet,它使用自己的有界上下文 Customer 实体,如上所述)

我的问题和我正在努力理解的是如何处理跨不同 DbContext 的代码优先迁移。 Customer 实体引用同一个数据库表,但只公开那些与它们所在的有界上下文相关的属性。那么 EF 如何通过迁移处理这个问题?

最佳答案

您需要一个上下文,其中定义了 Customer 的所有字段。此上下文将处理迁移。如果需要,您可以从有界上下文中隐藏此上下文。您必须使用以下命令禁用有界上下文的迁移

Database.SetInitializer<AccountsContext>(null);


Database.SetInitializer<DelivieriesContext>(null);

这些信息必须出现在 Julie 的类(class)中​​,您可能已经错过了。

她的类(class)有一个很好的总结。你会在
this MSDN magazine article

关于entity-framework - DDD 和 EF 代码优先迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com