使用自跟踪实体模板的WCF服务实践
1. 自跟踪实体模板概述
使用POCO类而非EntityObjects,能显著提升数据序列化、传输和反序列化的性能,减少网络负载。对于非.NET的消费应用程序,简单的数据结构比EntityObject生成的负载更易于处理。
微软提供了自跟踪实体模板,用于处理WCF服务及其客户端的变更跟踪。该模板创建的POCO类封装了变更跟踪和通知功能,无需依赖实体框架API。此模板包含在Visual Studio 2010安装中,无需额外下载。
2. 准备工作
为避免混淆,需创建新解决方案和项目,并移除之前使用模型的遗留项:
1. 从项目中移除现有模板(BreakAway.Context.tt)。
2. 移除对BreakAwayEntities和POCOState项目的引用。
3. 生成自跟踪实体类
3.1 生成步骤
- 打开新模型项目,在设计器中打开模型。
- 从上下文菜单中添加代码生成项,选择“ADO.NET自跟踪实体生成器”。
- 项目将添加两个模板:一个用于上下文,另一个用于实体。
3.2 生成类分析
生成的实体类逻辑主要分为两类:与WCF数据合同序列化相关和与变更跟踪相关。
在变更跟踪方面,每个实体实现两个接口: IObjectWithChangeTracker
和 INotifyPropertyChanged
。