【Abp VNext】实战入门(十三):【2】领域层 —— 批量更新数据库记录


一、前言

EntityFrameWork 中没有批量操作数据库的方法,如:批量更新、批量删除等…

可以通过DbContext来执行Sql语句,不是特别优雅和推荐;

优雅的方式当然是使用开源的现成轮子…

二、批量操作数据库记录方案

1、添加开源插件:

nuget 搜索添加 Z.EntityFramework.Plus

2、批量更新记录Index:

        /// <summary>
        /// 找到指定Id记录,后面记录Index自动批量+1
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
       public async Task IndexIncreaseAfterIdAsync(int id)
        {
            var tmpEntity = this.DbContext.PresetCruise_Points.FirstOrDefault(p => p.Id == id);
            if (tmpEntity == null)
            {
                return;
            }
			//扩展方法 条件:比tmpEntity.Index 大的记录  
            await this.DbContext.PresetCruise_Points.Where(p => p.Index > tmpEntity.Index)
            	  //批量执行:Index=Index+1;
                  .UpdateAsync(p => new PresetCruise_Points() { Index = p.Index + 1 });
        }

三、总结

难者不会,会了就不难了;

Z.EntityFramework.Plus基础功能免费,高级功能收费;

还有一个开源插件EFCore.BulkExtensions 不过目前暂时不支持MySql,只支持 Sqlite 和 MsSql;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值