使用POCO和自跟踪实体构建WCF服务及处理实体关系
自跟踪实体模板相关
自跟踪实体在使用时,要求为.NET 3.5或4版本,且跨网络传输的消息相对较大,修改后的实体在更新时会将每个属性推回数据库。对于实体属性更新,有两种处理方式:一种是将对象状态改为已修改,无论属性是否真正修改,都将所有属性持久化到数据库;另一种是从数据存储中提取新数据,仅更新修改的值,让 SaveChanges 构建更高效的更新命令。
为了更好地理解自跟踪实体的工作原理,我们可以查看由自跟踪实体模板生成的类和扩展方法。模板生成了两个文件:
- Model1.Context.cs :基础上下文文件,与POCO模板生成的文件类似,但有两个不同点。一是在上下文的 Initialize 方法中,将 ObjectContext.ContextOptions.ProxyCreationEnabled 设置为 false ,永久关闭动态代理的创建;二是在 Initialize 方法中,将 ObjectMaterialized 事件连接到自定义方法 HandleObjectMaterialized 。该方法在查询执行期间对每个实体执行三项任务:确保自包含的 State 属性设置为 Unchanged ;使实体能够参与更改跟踪;存储关键值,这些关键值对于更改跟踪和关系管理至关重要。
- Model1.Context.E
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



