我一直在查看许多使用 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/