wcf - WCF 服务应该返回 EntityObject 还是 POCO/DTO 类?

标签 wcf entity-framework dto data-transfer-objects

我一直在查看许多使用 EntityFramework 的 WCF 示例,其中大多数似乎将某种 POCO 或 DTO 类返回给客户端。

我想知道为什么这是因为默认 EntityObject包括 [DataContract]属性和实现 INotifyPropertyChanged .返回 DTO 或 POCO 类是否优于 EntityObject (或反之亦然)?是否存在使用一个返回值优于另一个返回值的特定实例?

最佳答案

作为最佳实践,您绝对应该让它返回一个明确设计为数据契约且没有持久性逻辑的 DTO/POCO 类。

原因是,如果您传递一个 EntityObject,您就是在假设服务的使用者将引用相同的数据上下文,这违反了 SOA 明确边界的原则。它降低了服务的可重用性。

Microsoft 很可能在 EntityObject 上实现了 DataContract,以支持他们的一些基于 WCF 的数据库访问工具,例如 RIA。 INotifyPropertyChanged 用于 WPF 绑定(bind)支持,与 WCF 或数据协定无关。

关于wcf - WCF 服务应该返回 EntityObject 还是 POCO/DTO 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4824058/

相关文章:

c# - 如何将对象注入(inject) WCF 的 IErrorHandler?

c# - EF Core - 在事务中强制执行命令的优先级

mysql - SetInitializer用于数据库错误

c# - 使用 graphdiff 的条件映射

java - 使用还是不使用DTO?

c# - 如何实现消息队列解决方案

wcf - .NET 通过 WCF 远程处理?

asp.net - WCF服务支持文件jsdebug加载失败

java.lang.IllegalArgumentException : No enum constant found

java - hibernate 查询: new DTO clause not working