ABP 框架集成EF批量增加、删除、修改只针对使用mmsql的

AppService 层使用nuget 添加 EFCore.BulkExtensions 引用

复制代码
 1 using Abp.Application.Services.Dto;
 2 using Abp.Domain.Repositories;
 3 using Abp.EntityFrameworkCore.Repositories;
 4 using Abp.UI;
 5 using EFCore.BulkExtensions;
 6 using Microsoft.EntityFrameworkCore;
 7 using System;
 8 using System.Collections.Generic;
 9 using System.Diagnostics;
10 using System.Linq;
11 using System.Text;
12 using System.Threading.Tasks;
13 using WebProject.Authorization.Accounts;
14 
15 namespace WebProject.Article
16 {
17     public class ArticleAppService : WebProjectAppServiceBase, IArticleAppService
18     {
19         private readonly IRepository<Models.Article> _articleRepository;
20         public ArticleAppService(IRepository<Models.Article> articleRepository)
21         {
22             _articleRepository = articleRepository;
23         }
24         /// <summary>
25         /// 批量添加
26         /// </summary>
27         /// <param name="input"></param>
28         /// <returns></returns>
29         public string BulkInsert(EntityDto input)
30         {
31             Stopwatch watch = new Stopwatch();
32             watch.Start();
33             List<Models.Article> list = new List<Models.Article>();
34             for (int i = 0; i < input.Id; i++)
35             {
36                 var entity = new Models.Article();
37                 entity.CateId = 2;
38                 entity.Title = $"BulkInsert娱乐{1}";
39                 list.Add(entity);
40             }
41            
42             _articleRepository.GetDbContext().BulkInsert(list);//GetDbContext 需要添加Abp.EntityFrameworkCore.Repositories引用
43             watch.Stop();
44            
45             string time = watch.ElapsedMilliseconds.ToString();
46             return time;
47         }
48         /// <summary>
49         /// 批量删除
50         /// </summary>
51         /// <returns></returns>
52         public string BulkDelete()
53         {
54             Stopwatch watch = new Stopwatch();
55             watch.Start();
56             _articleRepository.GetAll().BatchDelete();
57             //_articleRepository.GetAll().Where(m=>m.Id>100).BatchDelete();
58             watch.Stop();
59             string time = watch.ElapsedMilliseconds.ToString();
60             return time;
61         }
62         /// <summary>
63         /// 批量修改
64         /// </summary>
65         /// <returns></returns>
66         public string BatchUpdate()
67         {
68             Stopwatch watch = new Stopwatch();
69             watch.Start();
70             _articleRepository.GetAll().BatchUpdate(new Models.Article { Title = "Updated娱乐" });
71             //_articleRepository.GetAll().Where(m=>m.Id>100).BatchUpdate(new Models.Article { Title = "Updated娱乐" });
72             watch.Stop();
73             string time = watch.ElapsedMilliseconds.ToString();
74             return time;
75         }
76        
77     }
78 }
复制代码

 

posted on   落叶子  阅读(4545)  评论(3编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2016-03-29 nopcommerce 商城案例

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示