zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Thinkphp6.0/TP6框架中新增函数的解释及用法
    PHP7.1的几个新特性
    tp6数据库mysql调试
    nginx基本配置
    redis配置
    redis的笔记
    thinkphp学习笔记
    vsCode软件相关快捷键
    erlang随笔3--OTP
    文献综述二十:基于UML技术的客户关系管理系统实现
  • 原文地址:https://www.cnblogs.com/lkd3063601/p/10622201.html
Copyright © 2011-2022 走看看