gpt4 book ai didi

c# - Entity Framework 和DTO

转载 作者:可可西里 更新时间:2023-11-01 08:35:19 26 4
gpt4 key购买 nike

我打算使用 EF (POCO) 生成的实体向客户端发送数据而不是创建 DTO?这是一个好习惯吗?基本上,我的 EDMX 文件在我的 DAL 层上。因此 UI 将可以直接访问我的 DAL。谢谢。

最佳答案

这取决于客户端与您的对象域的距离。如果它是您的客户端,那么也许 - 事实上这几乎就是 ADO.NET 数据服务(等)的工作方式 - 直接公开您的模型。

但是,如果客户端是任何其他,我建议使用专用的 DTO。事实上,无论如何我都会建议它;p 否则,它会变得有些复杂:

  • 控制序列化细节(什么成员?什么名字?当我们版本化它时会发生什么?)
  • 处理关系属性(它一个Orders成员...但是它是延迟加载的吗?我们想要那个吗?)
  • 将传入的对象(用于更新等)合并回模型
  • 在反序列化期间抑制您在 setter 等中添加的任何逻辑
  • 如果您在基于树的序列化程序(如 DataContractSerializer)中获得同一对象的 2 个单独副本,则处理身份管理

在大多数情况下,拥有一个单独的 DTO 可以让这些问题中的大部分消失

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

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