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