我一直在查看很多使用 EntityFramework 的 WCF 示例,其中大多数似乎都会向客户端返回某种 POCO 或 DTO 类。
我想知道为什么这是默认的EntityObject
包括[DataContract]
属性和工具INotifyPropertyChanged
。返回 DTO 或 POCO 类比返回EntityObject
(或反之亦然)?是否存在使用一个返回值优于另一个返回值的特定情况?
作为最佳实践,您绝对应该让它返回一个明确设计为数据契约并且没有持久性逻辑的 DTO/POCO 类。
原因是,如果传递 EntityObject,则假设服务的使用者将引用相同的数据上下文,这违反了显式边界的 SOA 原则。它降低了服务的可重用性。
Microsoft 在 EntityObject 上实现 DataContract 很可能是为了支持一些基于 WCF 的数据库访问工具(例如 RIA)。 INotifyPropertyChanged 用于 WPF 绑定支持,与 WCF 或数据协定无关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)