Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在使用DTO';s和实体违反了DRY原则?_C#_Orm_Dry_Automapper - Fatal编程技术网

C# 正在使用DTO';s和实体违反了DRY原则?

C# 正在使用DTO';s和实体违反了DRY原则?,c#,orm,dry,automapper,C#,Orm,Dry,Automapper,我在看一个叫做。我对此有一些担忧: 我们不想公开我们的数据模型(好)。为什么数据模型应该与数据库非常相似 使用轻量级DTO而不是实体。(好) 现在我需要将实体映射到这些DTO。我是否尊重干燥原则 有人可能会说DTO违反了DRY,但如果它对您的情况有意义,那么我不会再三考虑 像大多数编程最佳实践一样,DRY并不是万能的。有时候你不得不妥协。在这种情况下,我认为违反DRY是完全可以接受的,这样可以防止将域详细信息泄漏给不需要它的调用方而引起的问题(例如N+1延迟加载性能问题)。取决于应用程序。事务应

我在看一个叫做。我对此有一些担忧:

  • 我们不想公开我们的数据模型(好)。为什么数据模型应该与数据库非常相似

  • 使用轻量级DTO而不是实体。(好)

  • 现在我需要将实体映射到这些DTO。我是否尊重干燥原则


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


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

    取决于应用程序。事务应用程序,并根据业务逻辑需求,将数据模型公开给上层代码对于一定规模的项目是有意义的。我认为应用程序越大,DRY就越重要,但我不太了解您提出这个问题的背景