首页 > 数据库 >在core项目下通过Dapper对mysql执行批量操作 报at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior b

在core项目下通过Dapper对mysql执行批量操作 报at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior b

时间:2023-08-16 17:01:34浏览次数:65  
标签:core 批量 MySqlCommand MySqlClient SqlMapper cs Dapper 执行 line

 

在core项目下通过Dapper对mysql执行批量操作一直报异常 

 

报PushService=>UpdateKeyWordProductCountTask=>错误信息:Fatal error encountered during command execution.;;;堆栈信息: at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader) in /_/Dapper/SqlMapper.cs:line 2848
at Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command) in /_/Dapper/SqlMapper.cs:line 581
at Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType) in /_/Dapper/SqlMapper.cs:line 452
at Infratructure.Persistence.Repository.SyncProResponsity.EditUrlKeyWords(IList`1 strSqls) in /src/Infratructure/Repository/Responsity.cs:line 80
at SpzsPushService.Worker.<>c__DisplayClass14_0.<UpdateKeyWordProductCountTask>b__0() in /src/PushService/Worker.cs:line 649

 

最后排查出问题是因为在core封装的Dapper在执行批量操作的时候会判断你传的参数,参数为null会按照单条执行,参数不为null按照批量执行

 

最终执行是应该以下格式处理

 

 

以下是其他的执行语句格式

Dapper-Execute

Ececute是一种可被任何IDbConnection类型的对象调用的扩展方法。它可以执行一次或多次命令, 并返回受影响的行数。此方法通常用于执行存储过程、插入、更新、删除

存储过程

单次执行

多次执行

 

插入

 

更新

 

删除

 

 Dapper 批量更新

1.使用Where In 实现批量更新

 

2.更新多条数据,每一条数据更新的内容可不相同

 

执行语句摘抄至:https://www.cnblogs.com/ys9527/p/10524380.html

标签:core,批量,MySqlCommand,MySqlClient,SqlMapper,cs,Dapper,执行,line
From: https://www.cnblogs.com/dingdingyiyi/p/17635578.html

相关文章

  • .NET Core6.0配置JWT
    环境 ASP.NETCoreWebAPIJWT的一些讲解和与Session的区别俺就不多说了可以去官方文档了解一下直接上代码简单粗暴(以下操作都是在ASP.NETCoreWebAPI进行操作)第一步:引入一个NuGet包  根据自己.NET版本选择对应的版本号 第二步:在appsettings.json配置一些信息"A......
  • .Net Core DateTime.Now 在Linux下的格式问题
    .Net6使用DateTime获取系统当前时间,在Windows下输出为正常时间,但是在Linux下会获取到2023-8-16上午10:00:00类似的时间样式,会导致在Linux下抛出非法时间异常。解决方案:在Main函数中使用CultureInfo.DefaultThreadCurrentCulture属性来获取或设置当前应用程序域中线程的默认......
  • tricore 汇总
    1:指定输入段#ifdefined(__HIGHTEC__)#pragmasection#pragmasection".start"x    /*hightec编译器下声明函数fun()放入名为.start的指定输入段中,除了.start外全是关键字,.start可以随意命名*/#endif#ifdefined(__TASKING__)#pragmaprotecton#pragmasect......
  • ef.core 事务不回滚的我遇到的一种情况分享
    比如有几个Repository:_storeRep,_inventoryRep,_storeItemRep。基类封装有BeginTransaction(); using(vartrans=_storeItemRep.BeginTransaction()){try{_storeRep.UpdateRange(...);_inventoryRep.Add(...);_storeItemRep.Add(...);_stroeRep.saveChange();_inventoryRe......
  • Coremail AI实验室:利用高级语境和视觉智能进行钓鱼邮件检测
    在这个日益数字化的时代,对电子邮件安全需求是至关重要的。新兴的高级威胁邮件:应用社工技术的钓鱼邮件,仿冒公检法的钓鱼邮件等等,都需要更高级的防御策略。Coremail邮件安全人工智能实验室,整合了高级文本语境理解和智能图像处理能力,得以显著增强钓鱼邮件的检测能力,为千万级各行业终端......
  • 项目发布部署:如何发布.NETCore项目到IIS服务器?
    前言:本文将详细介绍如何发布.NETCore项目到IIS服务器。首先,第一步需要安装IIS,介绍了在本地电脑和服务器中进行安装。然后需要安装SDK和运行时才能发布.NETCore项目。其次介绍了如何发布.NETCore项目和Vue项目,并配置IIS。最后介绍了如何将项目部署到Service服务中。一、安装IIS教程......
  • 项目发布部署:如何发布.NETCore项目到IIS服务器?
    前言:本文将详细介绍如何发布.NETCore项目到IIS服务器。首先,第一步需要安装IIS,介绍了在本地电脑和服务器中进行安装。然后需要安装SDK和运行时才能发布.NETCore项目。其次介绍了如何发布.NETCore项目和Vue项目,并配置IIS。最后介绍了如何将项目部署到Service服务中。一、安装IIS......
  • asp.net core配置验证
    在开发asp.netcore时,通常会在appsettings.json中配置信息,这些信息都是以一个json的格式存储,在程序中通过Options的方式来绑定实体类使用,如下面的APIConfig和实体类。配置文件:{"Logging":{"LogLevel":{"Default":"Information","Microsoft.AspNet......
  • asp.net core配置验证
    在开发asp.netcore时,通常会在appsettings.json中配置信息,这些信息都是以一个json的格式存储,在程序中通过Options的方式来绑定实体类使用,如下面的APIConfig和实体类。配置文件:{"Logging":{"LogLevel":{"Default":"Information","Microsoft.As......
  • asp.net core配置验证
    在开发asp.netcore时,通常会在appsettings.json中配置信息,这些信息都是以一个json的格式存储,在程序中通过Options的方式来绑定实体类使用,如下面的APIConfig和实体类。配置文件:{"Logging":{"LogLevel":{"Default":"Information","Microsoft.As......