中间层建立上下文录制对象及录制属性。如下范例:

 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中间层服务器端DTO属性更新如何同步回仓储实体的处理方式的更多相关文章

  1. 使用 SVN Hook 实现服务器端代码自动更新

    之前的做法是客户端提交代码之后,再去服务器端项目中 svn up 一下来更新代码,让服务器端的项目更新到最新版本.可以编写一个 post-commit 钩子脚本来实现服务器端代码的自动更新,它在 SV ...

  2. 分布式系统中一些主要的副本更新策略——Dynamo/Cassandra/Riak同时采取了主从式更新的同步+异步类型,以及任意节点更新的策略。

    分布式系统中一些主要的副本更新策略. 1.同时更新 类型A:没有任何协议,可能出现多个节点执行顺序交叉导致数据不一致情况. 类型B:通过一致性协议唯一确定不同更新操作的执行顺序,从而保证数据一致性 2 ...

  3. myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能

    原理是这样的 svn服务器一般放在公共的服务器上,大家连这个服务器,在MyEclipse上使用svn控件 可以下载svn上的项目至本地,所以很多公司将开发要用到的软件都放在svn上,有同事来只要连上s ...

  4. cnblogs停止更新,同步到个人博客!

    cnblogs停止更新,同步到个人博客 https://dengpeng.me/!             个人博客地址: https://dengpeng.me

  5. 多线程环境的UI控件属性更新

    Winform: public delegate void UpadataTextCallBack(string str,TextBox text); public void UpadtaText(s ...

  6. knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制

    data-bind="text: firstName"中data-bind属性是Knockout 用来显示关联UI和viewmodel的桥梁, text 表示把绑定的文本赋值给DO ...

  7. vue之store中属性更新用法

    //1.首先定义store对象下的属性 state: { data:'测试数据' } // 2.定义更改data数据的方法 mutations: { updatedata(state, p) { st ...

  8. Java原子属性更新器AtomicReferenceFieldUpdater的使用

    AtomicReferenceFieldUpdater是基于反射的工具类,用来将指定类型的指定的volatile引用字段进行原子更新,对应的原子引用字段不能是private的.通常一个类volatil ...

  9. 学习WCF之路,长期更新

    我学习WCF之路:创建一个简单的WCF程序   为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用.本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本 ...

随机推荐

  1. 8个月从CS菜鸟到拿到Google Offer的经历+内推

    http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=77453&page=1&authorid=10377 ...

  2. 0到N数其中三个数的全排列

    #include<iostream> using namespace std; int main(){ ; int count; count=; ;i<=N;i++) ;j<= ...

  3. Web前端业界氛围极好的群——鬼懿IT

    鬼群简介 鬼懿IT主群号:,鬼懿IT-成长群:181368696 , 创建于2005年12月 ,聚集的业内人事包括:阿当,大漠,辣妈,崔凯,Rei,周裕波,司徒正美,丸子,鬼森林,寒冬,franky, ...

  4. JavaScript 隐式转换

    javascript 中的怪癖,js运算符隐式类型转换 x + "" //等价于 String(x) + x //等价于 Number(x),也可以写成x-0 !!x //等价于 ...

  5. H5 移动Web框架集合

    http://frozenui.github.io/  一个简洁的h5前端框架 http://weui.github.io/weui/ 腾讯出的WebUI 风格是基于微信

  6. aircrack-ng 字典破解WPA / WPA2

    1. 安装 首先安装两个扩展sudo apt-get install build-essentialsudo apt-get install libssl-dev 然后到http://download ...

  7. lintcode :Segmemt Tree Build II

    题目 Segmemt Tree Build II The structure of Segment Tree is a binary tree which each node has two attr ...

  8. 欧拉工程第68题:Magic 5-gon ring

    题目链接 任意一条线上的三个数的和都等于9,顺时针,从最小的外圈开始,得到的序列是:432621213 和             序列 9位的字符串:三角环所能形成的最大字符串为432621513. ...

  9. Android title和actionbar的区别

    我想在一个页面的顶端放入两个按钮,应该用title还是actionbar.他们两个什么区别?分别该什么时候用? 答: android title 是UI上的一小部分,它支持Text和Color,你可以 ...

  10. 【翻译】JavaScript中的作用域和声明提前

    原文:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html ===翻译开始=== 你知道下面的JavaScript脚本执 ...