关于WCF中间层服务器端DTO属性更新如何同步回仓储实体的处理方式
2014-03-14 16:09
1276 查看
中间层建立上下文录制对象及录制属性。如下范例:
仓储对应的方法需要将返回的上下文应用到实体对应的DTO上(上下文已根据DTO主键建立属性键值对),范例代码如下:
public bool CancelChangeEvent(ClientContext context, Dbs dbs, int encounterId, int transferId, int sickbedId, ref DataManagerContext dataContext) { DataManager manager; IList<IEntityWithKey> recordedlist; recordedlist = new List<IEntityWithKey>() { dtos, dtoEncounter }; manager = DataManagerFactory.Create(recordedlist); manager.RecordProperty<DtoTransfer>(a => a.IsTransferedOverTo); manager.RecordProperty<DtoMonitorEvent>(a => a.RecorderId, a => a.EventDateTime, a => a.EndOn, a => a.Description, a => a.IxsEventII, a => a.RowVersion); manager.RecordProperty<DtoEncounter>(a => a.StatusCodeId, a => a.SickBedOrganizationId, a => a.ResponsibleDepartmentId, a => a.IsTransferred, a => a.BabyFlag, a => a.SeqNoText, a => a.MotherEncounterId, a => a.RowVersion); ... ... manager.UpdateContext(dataContext); return true; }
仓储对应的方法需要将返回的上下文应用到实体对应的DTO上(上下文已根据DTO主键建立属性键值对),范例代码如下:
public bool CancelChangeEvent(ITransfer entity, int newsickbedId) { DataManagerContext dataContext = new DataManagerContext(); using (ServiceProxy<ITransferSvc> obj = GetObject<ITransferSvc>()) { DtoTransfer dto = DtoAccessor.GetFrom<DtoTransfer>(entity).GetDto(); DtoEncounter dtoEncounter = DtoAccessor.GetFrom<DtoEncounter>(entity.Owner).GetDto(); ret = obj.Service.CancelChangeEvent(Context, DbsKind.GetDbs(), entity.Owner.Id, entity.Id, newsickbedId, ref dataContext); if (ret) { DataManager dataManager = DataManagerFactory.Create(dtoEncounter); dataManager.ApplyContext(dataContext); DtoAccessor.GetFrom<DtoEncounter>(entity.Owner).SetDto(dtoEncounter); dataManager = DataManagerFactory.Create(dto); 18 dataManager.ApplyContext(dataContext); } } return true; }
相关文章推荐
- 通过WCF 服务 使用 EntityFramework5.0 CodeFirst方式 通过 DTO Automapper 更新实体的并发控制
- 关于SubSonic3.0插件使用实体进行更新操作时(执行T.Update()或T.Save()),某些列无法进行修改操作的问题处理
- tiptop GP5复制程式时CR报表的处理方式(关于数据源更新的问题)
- 关于Entity Framework自动关联查询与自动关联更新导航属性对应的实体注意事项说明
- 总结群里讨论的关于浮点数,如何四舍五入保留两位小数的处理方式
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
- 关于ssm框架项目,如何进行注解方式异常处理——@ExceptionHandler
- 【CSS】关于CSS盒子模型中的溢出处理方式overflow属性
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- 关于如何 Spring注解的方式 指定parent属性
- DDD:使用EntityFramework的话,如果只为聚合根设计仓储,其它实体如何处理?
- 在cxf中使用配置避免增加字段导致客户端必须更新、同步实体属性的问题
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- 关于如何创建属性和元素,还有如何引用实体
- CXF WebService 8 - 在cxf中使用配置避免增加字段导致客户端必须更新、同步实体属性的问题
- 如何用同步的方式读取 WCF RIA Servies 中List
- spring利用扫描方式对bean的处理(对任何版本如何获取xml配置信息的处理)
- 知识管理系统Data Solution研发日记之十四 如何以编程方式处理PDF格式文档
- 【C语言】【unix c】如何改变信号的处理方式
- Flask MVVM 开发(vue.js) - ajax如何同步更新地址栏history 以及使用浏览器返回按钮