gpt4 book ai didi

design-patterns - DDD 和 Entity Framework 中的聚合

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

我有一个问题,关于如何处理一个实体,该实体不是数据库中数据的表示,而是我出于业务目的需要的定制实体。

我的解决方案结构如下:

  • 实体组装(POCO 对象)
  • 存储库程序集(EF 代码优先)
  • 业务层组装
  • 用户界面组装(MVC)

在我的实体程序集中,我有两个实体,AB,为了我的业务逻辑的特定目的,我需要返回一个包含这两个实体的对象(在其他属性中):

class X
{
public A[];
public B[];
}

我应该直接从存储库返回这个对象吗?还是业务层调用repo.GetArepo.GetB,然后创建X并返回?

在这种情况下,也许在业务层创建对象是有意义的。但是,如果 X 类是 AB 的“分组依据”呢?然后从存储库中返回它更有意义。

我想没有 Elixir ,但有什么指导方针吗?

干杯。

最佳答案

我认为你需要弄清楚 X 属于哪一层以及它到底是什么:

  • 领域实体,即它从通用语言传达领域概念。在这种情况下,X 可能是包含 AB 子实体列表的聚合根。除了数据之外,它还可能有方法。 X 的存储库将保留 A 和 B 集合以及 X 对象,并且不会有用于 AB 的存储库.

  • 特定于 UI 或特定于用例的数据结构。在这种情况下,域层与 X 无关。应用程序或 UI 层将负责在 AB 实例与 X 对象之间进行映射。

关于design-patterns - DDD 和 Entity Framework 中的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234418/

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