你的位置:首页 > ASP.net教程

[ASP.net教程]Lind.DDD.UoW~方法回调完成原子化操作


回到目录

本文来自于实践中的不足

在最近开始过程中,遇到了一个问题,之前设计的工作单元UoW只支持Insert,Update,Delete三种操作,即开发人员可以将以上三种操作同时扔进工作单元,由工作单元UoW负责事件的处理,这种设计已经出现很多年了,大叔感觉也是不错,思路就是在工作单元里添加三个字典对象,用来存储你的Insert,Update,Delete操作,然后在commit时,统一进行提交!


从上面代码中,我们看到了,在Insert方法里,有一个GetModel(),然后对实体进行赋值后,又调用了Update,这样就形成了一个Insert与update的嵌套,这里是使用了工作单元的嵌套.

对UoW的注册方法的修改

     /// <summary>    /// 注册数据变更实体    /// </summary>    /// <param name="entity">实体类型</param>    /// <param name="type">SQL类型</param>    /// <param name="repository">仓储</param>    /// <param name="action">方法回调</param>    public void RegisterChangeded(      IEntity entity,      SqlType type,      IUnitOfWorkRepository repository,      Action<IEntity> action = null)    {      switch (type)      {        case SqlType.Insert:          insertEntities.Add(entity, new Tuple<IUnitOfWorkRepository, Action<IEntity>>(repository, action));          break;        case SqlType.Update:          updateEntities.Add(entity, new Tuple<IUnitOfWorkRepository, Action<IEntity>>(repository, action));          break;        case SqlType.Delete:          deleteEntities.Add(entity, new Tuple<IUnitOfWorkRepository, Action<IEntity>>(repository, action));          break;        default:          throw new ArgumentException("you enter reference is error.");      }    }

工作单元字典添加委托元素

 private IDictionary<IEntity, Tuple<IUnitOfWorkRepository, Action<IEntity>>> insertEntities; private IDictionary<IEntity, Tuple<IUnitOfWorkRepository, Action<IEntity>>> updateEntities; private IDictionary<IEntity, Tuple<IUnitOfWorkRepository, Action<IEntity>>> deleteEntities;

下面是程序运行后的截图,我们可以看到,整个过程是在serializable级别的事务里的,即最高的事务级别!

甘肃旅游必去景点排名甘肃旅游地图线路大全甘肃旅游多少钱甘肃旅游攻略大全甘肃旅游攻略自助游国庆想去泰国旅游,大概要多少钱? 马尔代夫怎么选择岛屿 去泰国旅游需要什么证件? 去马来西亚购物好不好? 十一国庆去鼓浪屿旅游人多不多?要注意什么? 海南七仙岭登山要门票吗?门票是多少? 桂林漓江什么时候去最好? 三亚中秋天气怎么样?去三亚应该穿什么衣服? 深圳西丽如何到南澳西冲? 深圳最好的旅行社 广深港高铁开通后, 深圳到九龙需要多长时间? 去深圳西冲烧烤要带炭去吗?西冲烤炉多少钱? 深圳中英街在哪?怎么去? 罗湖口岸到海洋公园怎么去? 周末深圳免费好玩的地方有哪些? 非深圳市民可以去中英街吗?去中英街要办理什么证件吗? 008-1930-01-201 Datasheet 008-1930-01-201 Datasheet 008-1930-01-203 Datasheet 008-1930-01-203 Datasheet 008-1930-01-912 Datasheet 008-1930-01-912 Datasheet 云水谣一日游 云水谣一日游 云水谣一日游 武汉游记 武汉游记 武汉游记 北海游记 北海游记 北海游记