在实体之间保持 2 个属性同步

问题描述 投票:0回答:0

所以我正在尝试在 EF Core 中对以下(简化的)进行建模。

public class Pool{
    public List<Regime> Regimes { get;set; }
    public List<Sites> Sites { get;set; } //nav property
}

public class Site{
    public List<Price> Prices { get;set; }
    public Pool Pool { get;set; } //nav property
}

public record Regime(string Identifier)

public record Price(decimal Price, string RegimeIdentifier)

要求 Pool 有一份领先的制度清单。因此,池中的每个站点都应该有池中每个机制的价格。目前,Regimes 在 EF 核心中配置为一个 valueObject,也就是一个 .OwnsMany 关系。

价格是一个新东西,需要补充。但是,我正在努力确定将其添加到我们的域模型的最佳方法。在我看来,只是将它添加为另一个指向该制度的列表,就需要大量额外的验证逻辑。

Aka 每次您将制度添加到池中时,这将意味着该池中的所有站点也需要更新为指向该制度的另一个价格。每次将站点添加到池中时,您都需要验证它的价格是否与池的制度相对应。 本质上,池和站点需要始终与此设计保持同步。

也许就是这样,只是想知道是否有人认识到这种情况以及是否有不同的方法可以简化这种情况。

c# entity-framework-core domain-driven-design
© www.soinside.com 2019 - 2024. All rights reserved.