返回域对象列表的最佳实践

时间:2012-01-30 12:31:55

标签: c# asp.net-mvc-3 domain-driven-design

我使用DDD原则为新项目创建了基础架构。我有一些存储库,用于为域中的工厂/水槽供应。应用程序层在请求时充当外观,交叉域模型以用于各种视图/编辑模型。

编辑模型被映射并合并回域模型,由使用流畅验证的serice验证。记录任何错误并通过错误服务将其报告给用户。

这一切都很完美。我现在关心的是如何最好地生成这些域对象的列表。

我想到了一些选择:

1)水合完整域模型,然后将这些模型展平为列表。域模型可以缓存为IEnumerable列表。然后将此集合展平并推送到请求视图。

2)创建一个“投影”对象,它是域模型的轻量级表示。这需要很少甚至不需要保湿,并且可以通过域级别进行拉取并映射到viewModel并显示。

3)“绕过”域并从应用层调用生成IEnumerable的服务。这将使域名保持清洁。

我担心解决方案1会因为显示域项列表而变重。虽然它们会被攻击,但由于域名的可搜索性质,没有任何保证缓存可以做很多好事。

对于什么是最佳选择的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

我更喜欢解决方案2.保持域模型清洁是必要的。

通过CQS(Command Query Separated),我们可以实现一个有效而轻量级的查询架构。

相关问题