gpt4 book ai didi

.net - Entity Framework 中的 DTO

转载 作者:行者123 更新时间:2023-12-04 22:25:29 24 4
gpt4 key购买 nike

我计划在 EF 4 中实现 NTier 设计。我知道 EF 本身会根据它在数据库中映射的表创建实体。我的问题是,DTO(数据传输对象)有什么用,还是真的需要它?看起来它促进了冗余,因为您必须为 EF 生成的每个实体创建另一个 DTO 实体。请指导我。谢谢..

最佳答案

DTO 是数据传输对象,用于仅在物理层之间传输所需的数据(当层位于另一个进程或另一个服务器上时)。如果您只需要显示人的姓名和年龄,则不需要转移她的地址、工作、子女等。因此您将创建仅包含姓名和年龄的简单传输对象。

EF 将创建将数据库记录映射到属性的实体。 EF 实体也可以(通过部分类)扩展为具有自定义计算属性和方法的完整域对象。域对象不应直接暴露给不同的层,这是使用 DTO 的另一种情况。

编辑:

使用 DTO 的最后一种情况是优化跨界调用。如果您有分层应用程序,其中一层调用另一层上的方法超过进程边界,您应该尽量减少这些调用,因为它们会降低性能(很慢)。为此,您可以创建特殊的 DTO,将复杂的数据结构(多个实体)传输到远程层上的某个主操作(外观),这将进一步使用数据来执行多个业务操作。

关于.net - Entity Framework 中的 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898372/

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