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

Per*_*der 5 c# orm dry automapper

我正在查看一个名为Automapper的库。我对此有一些担忧:

  1. 我们不想暴露我们的数据模型(好)。为什么数据模型应该与您的数据库非常相似?

  2. 使用轻量级 DTO 代替实体。(好的)

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

Kev*_*ang 4

有人可能会说 DTO 违反了 DRY,但如果这对您的情况有意义,那么我不会再三考虑。

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