博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF架构~EF异步改造之路~仓储接口的改造~续
阅读量:6173 次
发布时间:2019-06-21

本文共 1744 字,大约阅读时间需要 5 分钟。

后,总觉得有个代码的坏味道,这种味道源于它的DRP,即重复的代码太多了,即异步操作和同步操作其实只是在insert,update和delete上有所不同,获取数据的方法都是一样的,所以,我最后决定,将异步的接口进行改造,让它更加合理,方法后都加上Async的后缀,看上去也更像是个异步方法,呵。

改造后的异步接口

///     /// 异步操作    /// 基础的数据操作规范    /// 与ORM架构无关    ///     /// 
public interface IRepositoryAsync
where TEntity : class { ///
/// 添加实体并提交到数据服务器 /// ///
Item to add to repository Task InsertAsync(TEntity item); ///
/// 移除实体并提交到数据服务器 /// 如果表存在约束,需要先删除子表信息 /// ///
Item to delete Task DeleteAsync(TEntity item); ///
/// 修改实体并提交到数据服务器 /// ///
Task UpdateAsync(TEntity item); ///
/// 添加集合[集合数目不大时用此方法,超大集合使用BulkInsert] /// ///
Task InsertAsync(IEnumerable
item); ///
/// 修改集合[集合数目不大时用此方法,超大集合使用BulkUpdate] /// ///
Task UpdateAsync(IEnumerable
item); ///
/// 删除集合[集合数目不大时用此方法,超大集合使用批量删除] /// ///
Task DeleteAsync(IEnumerable
item); ///
/// 批量添加,添加之前可以去除自增属性,默认不去除 /// ///
///
Task BulkInsertAsync(IEnumerable
item, bool isRemoveIdentity); ///
/// 批量添加 /// ///
Task BulkInsertAsync(IEnumerable
item); ///
/// 批量更新 /// ///
Task BulkUpdateAsync(IEnumerable
item, params string[] fieldParams); ///
/// 批量删除 /// ///
Task BulkDeleteAsync(IEnumerable
item); }

而原来的IExtendRepository同时去继承同步和异步两个仓储接口

而在调用上,开发者们更清楚自己使用的是同步还是异步方法

转载地址:http://exmba.baihongyu.com/

你可能感兴趣的文章
Dsicuz x2.5、X3、X3.2如何去掉域名后面的/forum.php
查看>>
java.util.zip.DataFormatException: invalid distance too far back
查看>>
iml文件
查看>>
[汇编] 2数相加极简单版
查看>>
oracle登录错误:ORA-28000: the account is locked 解决方法
查看>>
VS调试Tip集结
查看>>
half extents
查看>>
New release iTextSharp 3.1.4 (2006-08-28)
查看>>
C# Socket系列三 socket通信的封包和拆包
查看>>
WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册
查看>>
景德镇特色的部门级别与权限
查看>>
Eclipse 打包过滤 Log.e
查看>>
MVVM架构~knockoutjs系列之验证信息自定义输出~再续
查看>>
DB2 Vs MySQL系列 | 体系架构对比
查看>>
32.4. redis-benchmark 测试工具
查看>>
Elaticsearch REST API常用技巧
查看>>
MySQL相关命令与备份
查看>>
HTML,CSS编码规范
查看>>
Woobuntu woobuntu_build.sh hacking
查看>>
Android 系统内置App JNI
查看>>