【问题标题】:Populating dropdowns/selection lists填充下拉列表/选择列表
【发布时间】:2010-07-23 07:40:05
【问题描述】:

我还在学习 DDD。我正在编写一个 ASP.NET MVC 应用程序,我需要从数据库中填充几个下拉列表。我为每种类型(状态、结果等)创建了映射实体

我不知道应该从哪里获取数据。当您必须将大量存储库注入 MVC 控制器时,为每种类型的选择列表创建单独的存储库感觉很痛苦。此外,所有这些选择列表都是只读的,因此每个选择列表的存储库似乎有点过分了。为所有选择列表类型创建单个超级存储库似乎也不正确,因为存储库应该像 one 实体类型的集合。

我已经阅读了一些关于 CQS 和报告层的信息,但我不知道如何正确实施。

【问题讨论】:

    标签: asp.net-mvc nhibernate domain-driven-design


    【解决方案1】:

    首先 - 如果您对 DDD 不满意,甚至不要查看 CQRS。我的意思是 - 看看,但不要试图用它来实现真正的项目。然而。

    当我们没有将应用程序的读取端和写入端分开时,存储库会因为混合责任而变得混乱。

    从一个角度来看 - 它负责持久化聚合根,从另一个角度来看 - 它也负责报告。

    这意味着 - 如果存储库包含仅出于演示目的检索数据的功能,则没有任何问题(至少在我看来)。

    在您的情况下 - 我将使用来自相应存储库的数据构建下拉列表。所以 - 产品下拉列表将从ProductRepository.Find(bySomething)(或Repository<Product>(bySomething),以防我决定使用通用存储库)获取数据。

    附:请注意,DDD 与模式无关。它更多的是关于无处不在的语言和使您的域模型明确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      相关资源
      最近更新 更多