情不知从何起,一往而情深
排名
6
文章
199
粉丝
4
评论
3
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

abp vnext 批量操作 InsertManyAsync UpdateManyAsync等方法源码

4980人阅读 2023/2/23 21:30 总访问:1181629 评论:0 收藏:0 手机
分类: .net

InsertManyAsync 方法源码

  1. public override async Task InsertManyAsync(IEnumerable<TEntity> entities, bool autoSave = false, CancellationToken cancellationToken = default)
  2. {
  3. var entityArray = entities.ToArray();
  4. var dbContext = await GetDbContextAsync();
  5. cancellationToken = GetCancellationToken(cancellationToken);
  6. foreach (var entity in entityArray)
  7. {
  8. CheckAndSetId(entity);
  9. }
  10. if (BulkOperationProvider != null)
  11. {
  12. await BulkOperationProvider.InsertManyAsync<TDbContext, TEntity>(
  13. this,
  14. entityArray,
  15. autoSave,
  16. GetCancellationToken(cancellationToken)
  17. );
  18. return;
  19. }
  20. await dbContext.Set<TEntity>().AddRangeAsync(entityArray, cancellationToken);
  21. if (autoSave)
  22. {
  23. await dbContext.SaveChangesAsync(cancellationToken);
  24. }
  25. }

UpdateManyAsync 方法源码

  1. public override async Task UpdateManyAsync(IEnumerable<TEntity> entities, bool autoSave = false, CancellationToken cancellationToken = default)
  2. {
  3. cancellationToken = GetCancellationToken(cancellationToken);
  4. if (BulkOperationProvider != null)
  5. {
  6. await BulkOperationProvider.UpdateManyAsync<TDbContext, TEntity>(
  7. this,
  8. entities,
  9. autoSave,
  10. GetCancellationToken(cancellationToken)
  11. );
  12. return;
  13. }
  14. var dbContext = await GetDbContextAsync();
  15. dbContext.Set<TEntity>().UpdateRange(entities);
  16. if (autoSave)
  17. {
  18. await dbContext.SaveChangesAsync(cancellationToken);
  19. }
  20. }

原文地址:https://www.cnblogs.com/liuxiaoji/p/16812874.html


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

EF多种更新方法。EF修改,Entity Framework修改。abp vnext ef 更新封装

[TOC] 方法1:直接执行更新的sql语句过于简单不说了 方法2:先查询在更新Users result = oapEntities.Users.Where(a =&gt...

EF添加。Entity Framework添加。abp vnext ef 添加,批量添加的封装

EF的添加如下,代码比较添加: ShipEntities se = new ShipEntities(); se.Users.Add(user); se.SaveChanges(); 方法2:...

领域驱动设计DDD abp vnext 一:项目架构搭建,模块使用

[TOC]用户接口层改造nuget中下载abp依赖VoLo.Abp.AspNetCore.Mvc ItemGroup添加方式 &lt;ItemGroup&gt; &lt;Packa...

abp vnext ObjectMapper 为空

abp vnext ObjectMapper 报空引用的错。System.NullReferenceException:“Object reference not set to an instance of an ...

领域驱动设计DDD abp vnext 二:使用仓储

[TOC]领域驱动设计仓储介绍在领域层和数据映射层之间进行中介,使用类似集合的接口来操作领域对象.” (Martin Fowler)。 实...

abp vnext 通用仓储,操作空引用。abp vnext 仓储报错,仓储为空。依赖注入报错

An internal error occurred during your request! abp vnext 通用仓储依赖注入拿到为空,或者能正常拿到依赖注入操作空引...

领域驱动设计DDD abp vnext 三:领域模型 之 失血模型,贫血模型,充血模型,胀血模型

[TOC]领域模型分为:失血模型,贫血模型,充血模型,胀血模型。 一、失血模型传统的三层架构,实体对象就是简单的POJO或者...

abp vnext连接mysql。.net core连接mysql。ef core连接mysql

增加一个MySQL的库:Volo.Abp.EntityFrameworkCore.MySQL &lt;PackageReference Include=&quot;Volo.Abp.EntityFrameworkCo...

abp vnext ef core连接MySql报空引用错,连接SqlServer报空引用错。abp vnext 的坑

使用abp vnext 真的太喜欢报空引用的错了。你报点错给一点具体的错不行么,这样搞起让人去猜太坑了,比如前面的auto_fac没...

abp vnext项目结构分析

Domain 项目领域层,领域驱动开发的核心层。 它主要包含 实体, 集合根, 领域服务, 值类型, 仓储接口 和解决方案的其他领域...

abp vnext 实体的guid主键

Guid主键的实体如果你的实体Id类型为 Guid,有一些好的实践可以实现: 创建一个构造函数,获取ID作为参数传递给基类.— 如...

abp vnext 获取配置文件

代码如下: public override void ConfigureServices(ServiceConfigurationContext context) { var services = cont...

abp vnext验证

验证DTO微软官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/validation?view=aspnetcore-7.0 数据注...

abp vnext 通用仓储 ef core。WhereIf,多条件,动态条件,分页,动态排序等

abp vnext 通用仓储 ef core WhereIf,多条件,分页等public async Task&lt;List&lt;LandInfoDto&gt;&gt; GetListAsync(Pag...

abp vnext 事务,多表查询,自定义仓储

[TOC]abp vnext 中的通用仓储主要是封装的单表操作,如果是实现事务的话最好还是封装一个自定义仓储。 自定义仓储大概的结...

abp vnext导航属性,级联查询。abp vnext 通用仓储 级联查询不到数据。abp vnext 多表查询,join

使用abp vnext的导航属性做级联查询,当然你可以使用自定义仓储,直接用原生的ef来写,也很简单方便abp vnext自定义仓储里...