gpt4 book ai didi

c# - 在基于 Web 的架构上使用 POCO、DTO 和 ViewModel

转载 作者:行者123 更新时间:2023-12-05 07:54:10 26 4
gpt4 key购买 nike

在我正在进行的项目中,我有 3 层域。

MVC 5 App [有引用]-> 类库[有引用]-> 数据访问层( Entity Framework )。

  • DAL 有 POCO
  • 类库有 DTO
  • MVC 应用程序有 ViewModels

例如,我为每一层都有一个非常基本的人物类,我正在使用Auto Mapper map 之类的;

CreateMap<POCO,DTO> //(in class library)
CreateMap<DTO,ViewModel> //(in MVC app)

由于这个 person 类非常基础,所有三层都有几乎相同的类定义。随着我的项目的增长,开始有更多的类在所有层上具有相同的结构。我正在将相同的类定义从一个映射到另一个。

有一些复杂的类在每一层上有 3 个不同的定义是有意义的,但是如果这是在每一层上定义相同类定义的可接受方法,那么像这个“人”类这样的类让我很感兴趣。

我知道这个问题看起来像是“广泛主题”问题的候选人,但我找不到明确的定义或在线博客文章。由于书籍主要关注其中一个层面,因此我找不到这方面的全面介绍。

简而言之,即使对于基本的实体类,在每一层上定义类的好的方法是什么?

最佳答案

在对这个概念进行更多研究之后,我发现之前有人问过非常相似的问题: How do I reduce duplication of domain/entity/DTO objects?

这个问题让我写了一篇很棒的文章; http://blog.ploeh.dk/2012/02/09/IsLayeringWorththeMapping/

基本上,如果我想要层与层之间的清晰分离,层之间的一些重复和映射是我需要付出的代价,天下没有免费的午餐。

否则,正如@Maris 所说,我可以选择创建将跨层传输的通用持久性对象的路径,它将减少重复和更改相关实体类所花费的时间,但是我最终可能会拥有不相关的特性和特性在我的类(class)上保持对所有层的支持。

因此,我倾向于选择第一种路径。

关于c# - 在基于 Web 的架构上使用 POCO、DTO 和 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com