dapper mysql 批量_Dapper批量更新
本次示例项目使用Dappe1.50.5和Dapper.Contrib1.50.5
数据库执行的脚本检测工具是SQL Server Prifiler
1.使用Where In 实现批量更新
1.1代码如下:
///
/// 把多个用户的isvalid置为0
///
public void UpdateUsersByWhereInTest()
{
var sql = @"UPDATE dbo.[user] SET isvalid=0 WHERE UserId IN @UserId ;";
var userIdArr = new int[] { 3013, 3012, 3011, 3010 };
var res = Repository.Execute(sql, new { UserId = userIdArr });
Assert.True(res > 0);
}
///查询多条记录
List vs = new List();
string sql = " select * from Special_attributes where SattrId in @vs";
arrtModels = SqlConnectionFactory.Connection.Query(sql, new { vs } ).ToList();
1.2检测到数据库执行的脚本
exec sp_executesql N'UPDATE dbo.[user]
SET isvalid=0
WHERE UserId IN (@UserId1,@UserId2,@UserId3,@UserId4) ;',
N'@UserId1 int,@UserId2 int,
@UserId3 int,@UserId4 int',
@UserId1=3013,@UserId2=3012,
@UserId3=3011,@UserId4=3010
2.更新多条数据,每一条数据更新的内容可不相同
2.1代码如下
///
/// 分别把用户Id是3013的用户名称更新为张三,用户Id是3012的用户名称更新为李四
///
[Fact]
public void UpdateUsersTest()
{
var sql = @"UPDATE dbo.[user] SET UserName=@UserName WHERE UserId = @UserId ;";
var users = new List {
new User { UserId=3013, UserName = "张三", },
new User { UserId =3012, UserName = "李四", },
};
var res = Repository.Execute(sql,users);
Assert.True(res > 0);
}
// 6、批量删除
public int Delete_Shopping(List CommodityID)
{
string sql = string.Empty;
sql += " delete ShoppingCommodity where CommodityID in @CommodityIDs";
int j = SqlConnectionFactory.Connection.Execute(sql,new { CommodityIDs = CommodityID.ToArray() });
return j;
}
// 7、 用where 的in 查询 参数得是数组类型 并且参数不加括号
// 8 、批量添加 List 当作参数 list里某个属性的值只能有一个
2.2检测到数据库执行的脚本
生成两条Update脚本执行
exec sp_executesql N'UPDATE dbo.[user]
SET UserName=@UserName
WHERE UserId = @UserId ;',
N'@UserId int,@UserName nvarchar(4000)',
@UserId=3013,@UserName=N'张三'
exec sp_executesql N'UPDATE dbo.[user]
SET UserName=@UserName
WHERE UserId = @UserId ;',
N'@UserId int,@UserName nvarchar(4000)',
@UserId=3012,@UserName=N'李四'
dapper mysql 批量_Dapper批量更新相关推荐
- dapper mysql 拓展_Dapper.Common基于Dapper的开源LINQ超轻量扩展
Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...
- dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1: 简单的 ...
- MySQL批量插入与更新
目录 准备表和测试数据 insert into values.insert into select replace into insert into on duplicate key update i ...
- mysql 实现批量添加和更新功能
//mapper.xml文件配置 单独添加<!-- Integer addbCompany(bCompany bc);注册网点 --><insert id="addbCom ...
- 批量 杀掉 mysql 连接_批量杀死MySQL连接的四种方法详解
方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令.复制代码 代码如下:mysql> ...
- mysql命令行批量添加数据_mysql命令行批量插入100条数据命令
先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...
- mysql 如何提高批量导入的速度
mysql 如何提高批量导入的速度 最近一个项目测试,有几个mysql数据库的表数据记录达到了几十万条,在搭建测试环境 导入 测试数据时,十分慢. 在网上搜索了一下,有下面一些方法可以加快 mysql ...
- EF Core中高效批量删除、更新数据的Zack.EFCore.Batch发布三个新特性
Zack.EFCore.Batch是一个支持在Entity Framework Core中高效删除和更新数据的开源库.我们知道,EF Core中不支持高效的删除和更新数据,所有的更新和操作都是逐条数据 ...
- 批量插入或更新数据(MyBatis-plus框架)
目录 1.场景说明 2.DUPLICATE 和REPLACE比较 3.批量插入或者更新(两种方式) 方式一:mybatis-plus的saveOrUpdateBatch方法 问题:如果操作类集成了基础 ...
最新文章
- 三星电池正在获取使用模式_三星Galaxy S10系列超大电池持久动力,解决电量烦恼...
- iframe 父窗口和子窗口相互的调用方法集锦
- 自己在CODING过程中遇到的问题以及解决(C/VC)
- 正则表达式的常用操作符
- VUE工程跨域的配置
- .htaccess FollowSymlinks影响rewrite功能
- 为什么年轻一代 连操作系统的基本知识 都不懂?
- 金九银十加薪季,测试题预热一波。
- dhcp服务器设置无线,无线网dhcp服务器设置
- 4月18日云栖精选夜读 | 阿里靠什么支撑 EB 级计算力?
- Android实现语音识别代码
- 用什么工具可以制作gif?分享一款在线制作gif动画工具
- matlab画图,均值±标准差
- 鸿蒙系统底部任务栏无响应,win10底部任务栏无响应两种修复方法
- 【CSDN】博文导入微信公众号
- 电商经验!补单防止骗子退款技巧
- 《编程之道》译者序(转载) (转)
- 【终极之战】基于Vue3+Vant3造一个网页版的类掘金app项目 - 个人主页
- python func函数用法_python函数局部变量用法实例分析
- 新零售餐饮风口正盛,食云集却在夹缝中求生?