【发布时间】:2009-03-30 02:54:21
【问题描述】:
将传递给视图的模型是否应该由对单个存储库的单个调用完全定义。换句话说,模型是单个聚合,还是应该在服务层中由单独的聚合构建模型,每个聚合都有自己的存储库?
我现在拥有它的方式是,我只需调用一个存储库来填充整个模型,然后由 View 呈现。似乎聚合、存储库和模型都变成了同一个概念。
【问题讨论】:
标签: asp.net-mvc repository aggregate
将传递给视图的模型是否应该由对单个存储库的单个调用完全定义。换句话说,模型是单个聚合,还是应该在服务层中由单独的聚合构建模型,每个聚合都有自己的存储库?
我现在拥有它的方式是,我只需调用一个存储库来填充整个模型,然后由 View 呈现。似乎聚合、存储库和模型都变成了同一个概念。
【问题讨论】:
标签: asp.net-mvc repository aggregate
我的意思是“以上都不是”。我更喜欢对视图使用表示模型,并且表示模型不需要存储库。这有多种原因:
现在,更具体地遵循您的问题:您是否构建了演示模型的实例?需要多少个存储库?好吧,这个问题现在几乎可以回答了。您设计表示模型以遵循视图的要求。您按照良好的 TDD 实践设计存储库,包括识别聚合根。现在“我需要多少个存储库来实例化这个模型”的问题很简单。您检查模型所需的聚合根,并使用您需要的那些。通常,我可以在单个 LINQ 查询中执行此操作。
【讨论】: