是否正在使用DTO和实体违反DRY原则?

时间:2010-02-18 00:01:00

标签: c# orm dry automapper

我正在看一个名为Automapper的图书馆。我对此有一些担忧:

  1. 我们不想公开我们的数据模型(GOOD)。为什么数据模型与您的数据库非常相似?

  2. 使用轻量级DTO而不是您的实体。 (GOOD)

  3. 现在我需要将我的实体映射到这些DTO。我是否尊重DRY原则?

2 个答案:

答案 0 :(得分:4)

有人可能会说DTO违反DRY,但如果它对你的情况有意义,那么我就不会三思而后行了。

像大多数编程最佳实践一样,DRY不是灵丹妙药。有时你必须妥协。在这种情况下,我认为违反DRY是完全可以接受的,以防止将域名详细信息泄露给不需要它的呼叫者(例如N + 1延迟加载性能问题)所引起的问题。

答案 1 :(得分:0)

取决于应用程序。事务应用程序,以及根据业务逻辑要求,将您的数据模型暴露给上层代码对于某种规模的项目是有意义的。我认为DRY在应用程序越大越重要,但我不太了解你提出这个问题的背景。