gpt4 book ai didi

c# - 带有 POCO + WCF + WPF 的 EF。在客户端重用 POCO 类还是使用 DTO?

转载 作者:行者123 更新时间:2023-11-30 14:38:26 24 4
gpt4 key购买 nike

我们正在开发一个带有 WPF 客户端的 3 层应用程序,它通过 WCF 与 BLL 进行通信。我们使用 EF 访问我们的数据库。我们一直在使用 EF 的默认 EntityObject 代码生成器,但是在通过网络发送这些对象以及在 BLL 中处理和重新附加它们时遇到了很多问题和序列化问题。

我们即将切换到 POCO 模板,并重写我们应用程序的数据访问和通信部分(我们希望以这种方式拥有更清晰的架构和更少的“魔术代码”。

我的问题是在客户端重用 POCO 类是否是个好主意?还是我们应该创建单独的 DTO 类?即使它们与 POCO 实体类相同?这两种方法的优缺点是什么?

最佳答案

绝对使用 DTO + AutoMapper。否则,由于循环依赖性(尤其是导航属性问题),在使用 WCF 时您将遇到大量 DataContractSerializer 问题。尽管您最初可能会忽略 DTO,但由于上述问题,您以后将不得不使用它们。因此,我建议为每一层使用适当的 DTO。

此外,您的层级特定模型将具有不同的属性。您可能还需要修改(即专门化)您在每一层中携带的数据。因此,如果您的项目足够大(或有可能如此),请使用具有适当命名的 DTO 并将它们放置在适当的位置(即,不要全部放在同一个程序集中)。

关于c# - 带有 POCO + WCF + WPF 的 EF。在客户端重用 POCO 类还是使用 DTO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7927452/

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