SqlBulkCopy只支持SQL Server? EF Core实现支持多数据库类型的Bulk Copy
前言
Microsoft SQL Server包含一个名为bcp的命令行实用工具,可以将较大文件快速大容量复制到SQL Server数据库的表或视图中,这种方法被称为Bulk Copy(批量复制)。
Bulk Copy相比与循环插入有很大的性能优势,网上有很多测试文章,这里就不再赘述了。
在C#代码中可以使用SqlBulkCopy
类实现类似功能,但是只支持SQL Server。
MySql下也有MySqlConnector
类库提供MySqlBulkCopy
类实现类似功能,但是居然和官方MySql.Data
类库不兼容:
Oracle下也有官方的OracleBulkCopy
类实现类似功能,但是好像只有.NET版本。
那有不有一种方式,可以同时支持多数据库类型的Bulk Copy呢?
linq2db.EntityFrameworkCore
linq2db是最快的LINQ数据库访问库,在POCO对象和数据库之间提供简单,轻便,快速且类型安全的层。
linq2db提供了EF Core扩展包linq2db.EntityFrameworkCore
,可以与EF Core集成并实现了一些很酷的功能,其中一项就是BulkCopy:
使用起来也很简单,示例代码如下:
DefaultDbContext context = new DefaultDbContext();//需要插入的数据
var users = new List<User>();
for (int i = 0; i < 1000; i++)
{users.Add(new User { Name = "User" + i });
}using (var db = context.CreateLinqToDbConnection())
{//执行BulkCopyawait db.BulkCopyAsync(new BulkCopyOptions { TableName = "User" }, users);
}
结论
从上面的代码可以看出,BulkCopy方法不区分数据库,实际数据库类型由运行时DbContext决定。
如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“,记住我!
SqlBulkCopy只支持SQL Server? EF Core实现支持多数据库类型的Bulk Copy相关推荐
- Linux + .net core 开发升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
- 微软 SQL Server 2019 将免费支持 Java;Rancher Labs获2500万美元融资;腾讯云进军日本市场……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
- 《Hadoop实战手册》一1.6 配置Sqoop以支持SQL Server
本节书摘来异步社区<Hadoop实战手册>一书中的第1章,第1.6节,作者: [美]Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 ...
- SQL Server 2016 JSON原生支持实例说明
原文:SQL Server 2016 JSON原生支持实例说明 背景 Microsoft SQL Server 对于数据平台的开发者来说越来越友好.比如已经原生支持XML很多年了,在这个趋势下,如今也 ...
- 下一代SQL 产品发布会,诚邀您的参加!!包含 Azure数据服务、高级分析和SQL Server(其中包括支持Linux的SQL Server vNext)。
现在注册 创新和业务转型 不论您是推动业务的决策者,还是下一个突破性应用程序的开发者,数据都是业务的核心 正如微软高层所言,加入我们,实现本地部署到云端的转型,利用微软数据平台最大程度优化您的数据策略 ...
- 如何连接sql托管实例_如何使用Windows托管的文件共享来支持SQL Server容器
如何连接sql托管实例 In a previous article, Automate Delivery of SQL Server Production Data Environments Usin ...
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...
- SQL Server代理(4/12):配置数据库邮件
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...
最新文章
- 深入浅出python机器学习_如何用python画三维图? add_subplot() Axes3D() plot_surface() gca()
- 在页面中隐藏数据库某信息并显示该信息对应的字典编码名称(后台ssh框架,前台extjs)
- centos纯命令行配置java环境
- 【机器学习基础】前置知识(四):一文掌握Pandas用法
- web服务器之iis,apache,tomcat三者之间的比较
- mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...
- linux内核更新 2.6.38,Linux内核 2.6.38版本预计到四月初完成
- 界面设计方法(2)— 5.功能按钮设计(新增,查询)
- 怎么调节手机的刷新率_【W21 5G性能篇】120Hz自适应刷新率,用了再也回不去
- STM32笔记记录2
- Matlab入门1(有手就行)
- 基于java社区疫情防控管理系统(java毕业设计)
- 使用nssm管理tomcat服务操作步骤
- 基于混沌系统的文本加密算法研究(一)——混沌及混沌加密的基础知识
- JavaScript高程三----(基础一)
- 计算机学报杂志官网在线出版,计算机学报
- mac os ERROR! The server quit without updating PID file
- 计算机读不了硬盘分区,一分钟告诉你硬盘要不要分区,为什么
- 「团队管理」UCD领域如何带领前端开发团队
- c#: NetTopologySuite凹凸多边形计算
热门文章
- 使用string.Format需要注意的一个性能问题
- python并行for循环_Python并行执行for循环
- 【转】学会这13个原则写UI界面文案,用户才能秒懂
- Comparison of video container formats
- centos打架django + mysql环境
- 交换网络中的sniffer讨论-基于交换网络的ARP spoofing sniffer
- CLS/CLR、c#(等语言)、托管、元数据、程序集 CLR学习第二课
- 小小一招解决“INSERT EXEC 语句不能嵌套”的问题
- ios 轻扫手势_轻扫即可快速删除iOS计算器中的数字
- 高清、免版权美图资源大全