我正在使用存储库模式开发一个 MVC 项目,并遇到了应用程序中非常常见的情况。
我有一个显示客户信息并使用客户和帐户存储库的视图。帐户提供地址、电子邮件、电话、订单历史等数据,而客户填写个人信息和客户选择。(有时两者之间的信息重叠)。但是我无法在客户之前获取帐户数据。
现在在 View 中,我只有一个 UI 实体 [uxCustomer] 紧密地代表一个 View (MVC)。现在我们首先要调用 CustomerRepository 来
=> Fill Customer info (partially)
=> Get AccountID to call AccountRepository
我想到了以下选项:
从 CustomerRepository 调用 AccountRepository 以返回完整的 [uxCustomer] 而不是部分的。
从控制器调用 CustomerReposioty 以获取部分 [uxCustomer],然后调用 AccountRepository 并传递部分 [uxCustomer] ByRef,以便可以使用 CustomerRepository 中不可用的信息填充它。
创建两个新实体 [BusinessCustomer] 和 [BusinessAccount](由各自的存储库返回)并在存储库和控制器之间有一个中间层,我们称之为处理器。并让 Processor 执行 step2 并返回 [uxCustomer]
请提供您的意见。
PS:我不控制 Service/DataAccessLayer,所以必须使用我所拥有的。