Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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# 是否需要实体框架实体映射到数据传输对象?_C#_Entity Framework_Domain Driven Design - Fatal编程技术网

C# 是否需要实体框架实体映射到数据传输对象?

C# 是否需要实体框架实体映射到数据传输对象?,c#,entity-framework,domain-driven-design,C#,Entity Framework,Domain Driven Design,这些天我在阅读领域驱动设计。应用程序是C#编程。所以我对层间的数据传输对象有点困惑 Daoman层(包括域对象) 服务层 数据层(实体框架) 网络用户界面 为什么我需要为这些层创建DTO?哪一层包括DTO,每一层包括自己的DTO?这个问题很快就会解决(过于宽泛和主观),可能应该在程序员交流中提出。但是,我可以告诉你我们做什么。我们所有的DTO对象都是在数据层创建的。所有与该层的映射都在该层。数据层之上的所有代码都使用DTO对象。在经历了许多不同的选择和失败之后,这对我们来说最为有效。顾名思义

这些天我在阅读领域驱动设计。应用程序是C#编程。所以我对层间的数据传输对象有点困惑

  • Daoman层(包括域对象)
  • 服务层
  • 数据层(实体框架)
  • 网络用户界面

为什么我需要为这些层创建DTO?哪一层包括DTO,每一层包括自己的DTO?

这个问题很快就会解决(过于宽泛和主观),可能应该在程序员交流中提出。但是,我可以告诉你我们做什么。我们所有的DTO对象都是在数据层创建的。所有与该层的映射都在该层。数据层之上的所有代码都使用DTO对象。在经历了许多不同的选择和失败之后,这对我们来说最为有效。

顾名思义,DTO是只传输数据的对象。它们不属于任何特定的层,它是一种将数据从一个层或上下文传递到另一个层或上下文的方式。您正在使用DTO,这样您就不会使用该上下文的对象,而这些对象为特定于上下文的概念建模。这样,一个层不会与另一个层耦合,它们的模型也不会公开(因为层的/上下文模型在该上下文之外没有意义)