文章出處
文章列表
在寫完倉儲接口的改造改造后,總覺得有個代碼的壞味道,這種味道源于它的DRP,即重復的代碼太多了,即異步操作和同步操作其實只是在insert,update和delete上有所不同,獲取數據的方法都是一樣的,所以,我最后決定,將異步的接口進行改造,讓它更加合理,方法后都加上Async的后綴,看上去也更像是個異步方法,呵。
改造后的異步接口
/// <summary> /// 異步操作 /// 基礎的數據操作規范 /// 與ORM架構無關 /// </summary> /// <typeparam name="TEntity"></typeparam> public interface IRepositoryAsync<TEntity> where TEntity : class { /// <summary> /// 添加實體并提交到數據服務器 /// </summary> /// <param name="item">Item to add to repository</param> Task InsertAsync(TEntity item); /// <summary> /// 移除實體并提交到數據服務器 /// 如果表存在約束,需要先刪除子表信息 /// </summary> /// <param name="item">Item to delete</param> Task DeleteAsync(TEntity item); /// <summary> /// 修改實體并提交到數據服務器 /// </summary> /// <param name="item"></param> Task UpdateAsync(TEntity item); /// <summary> /// 添加集合[集合數目不大時用此方法,超大集合使用BulkInsert] /// </summary> /// <param name="item"></param> Task InsertAsync(IEnumerable<TEntity> item); /// <summary> /// 修改集合[集合數目不大時用此方法,超大集合使用BulkUpdate] /// </summary> /// <param name="item"></param> Task UpdateAsync(IEnumerable<TEntity> item); /// <summary> /// 刪除集合[集合數目不大時用此方法,超大集合使用批量刪除] /// </summary> /// <param name="item"></param> Task DeleteAsync(IEnumerable<TEntity> item); /// <summary> /// 批量添加,添加之前可以去除自增屬性,默認不去除 /// </summary> /// <param name="item"></param> /// <param name="isRemoveIdentity"></param> Task BulkInsertAsync(IEnumerable<TEntity> item, bool isRemoveIdentity); /// <summary> /// 批量添加 /// </summary> /// <param name="item"></param> Task BulkInsertAsync(IEnumerable<TEntity> item); /// <summary> /// 批量更新 /// </summary> /// <param name="item"></param> Task BulkUpdateAsync(IEnumerable<TEntity> item, params string[] fieldParams); /// <summary> /// 批量刪除 /// </summary> /// <param name="item"></param> Task BulkDeleteAsync(IEnumerable<TEntity> item); }
而原來的IExtendRepository同時去繼承同步和異步兩個倉儲接口
而在調用上,開發者們更清楚自己使用的是同步還是異步方法
文章列表
全站熱搜