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“,记住我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小小一招解决“INSERT EXEC 语句不能嵌套”的问题

先看代码CreateProcedureup_test1 asSelect1111--这里没有问题 goCreateProcedureup_test2 AScreatetable#tt (a Varchar(4)) insertinto#tt Execup_test1 goCreateProcedureup_test3 asCreateTable#ttt (b varchar(4)) InsertInto#ttt Execup_…

word2013插入excel对象报错_在Word文档中修改嵌入的Excel对象

好吧,我做到了!感谢Remou发布的链接。在我跨过最初的障碍后,它确实提供了一些支持。。。这是我的代码:WordApp.Documents.Open("C:\Report.docx")Dim iOLE As Int16Dim oSheet As ObjectDim oOLE As ObjectFor iOLE 1 To WordApp.ActiveDocument.Content.ShapeRange…

取消IE不允许下载文件的提示

首先&#xff0c;要在迅雷“配置”——监视——在“监视浏览器”勾选&#xff08;要新版本的老版本没有此项&#xff0c;如果你使用的迅雷没有此项&#xff0c;点击帮助里面的“检查更新”升级既可&#xff09;&#xff0c;在设置里选“使用迅雷作为默认的下载工具”&#xff0…

让TA们告诉你,疫情当下如何更彪悍的成长

全世界只有3.14 % 的人关注了爆炸吧知识真正决定人与人之间的差距的&#xff0c;其实是我们对事物的见识与内心的格局&#xff0c;见识的深浅决定人生的深浅&#xff0c;格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号&#xff0c;希望能够给你带…

WEB前端开发规范

为什么80%的码农都做不了架构师&#xff1f;>>> 一、文件命名规范 images //图片资源&#xff0c;如果项目多人开发里面还需要用子文件夹分开fonts //字体资源&#xff0c;一般就是特殊字体嵌入或者图标字体styles //CSS文件- app.css //reset样式,如果项目小…

Execute .NET Code under SQL Server 2005

http://www.codeproject.com/KB/database/Managed_Code_in_SQL.aspx转载于:https://www.cnblogs.com/OceanChen/archive/2010/07/22/1783091.html

MySQL调用mongodb事务回滚_SpringBoot整合MongoDB,在多数据源下实现事务回滚。

项目中用到了MongoDB&#xff0c;准备用来存储业务数据&#xff0c;前提是要实现事务&#xff0c;保证数据一致性&#xff0c;MongoDB从4.0开始支持事务&#xff0c;提供了面向复制集的多文档事务特性。能满足在多个操作&#xff0c;文档&#xff0c;集合&#xff0c;数据库之间…

Goreplay来做流量回放

最近做项目&#xff0c;用到goreplay来做流量回放&#xff0c;什么是goreplay&#xff1f;GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, load testing, monitoring and detailed analysis.本质上就是通…

硬盘知识学习(一)

硬盘相关常识&#xff08;一&#xff09;一、硬盘的组成硬盘粗略的讲&#xff0c;包括碟片、磁头&#xff0c;主轴、接口、缓存等组成。二、硬盘的三个基本概念1&#xff0c;什么是磁道&#xff08;TRACK&#xff09;。磁道首先是看不到的。他是在格式化的时候在盘面上划分出的…

“Python简直万能!”拜托快醒醒!

全世界只有3.14 % 的人关注了爆炸吧知识在程序员中&#xff0c;一直流传着“Python除了不会生孩子&#xff0c;什么都会”的传说&#xff0c;Python真的是万能语言&#xff1f;很多使用Python的小伙伴&#xff0c;坚信 Python 可以做任何事情。到底是不是真的如传说中那般万能&…

如何对 string 进行Base64编码,解码?

咨询区 Kevin Driedger&#xff1a;如何将指定的 string 编码成 base64。如何将 base64 解码成 string。回答区 andrew.fox&#xff1a;我来分享下对这个问题的处理吧&#xff1a;对 Encoding 类进行扩展&#xff0c;当然扩展方法还支持各种编码格式&#xff0c;不仅仅是 UTF8。…

python编程自然数表达式_[宜配屋]听图阁

普通的数学运算用这个纯抽象的符号演算来定义&#xff0c;计算结果只能在脑子里存在。所以写了点代码&#xff0c;来验证文章中介绍的演算规则。我们来验证文章里介绍的自然数及自然数运算规则。说到自然数&#xff0c;今天还百度了一下&#xff0c;据度娘说&#xff0c;1993年…

Oracle分区表常用命令

一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术&#xff0c;通过将大表和索引分成可以管理的小块&#xff0c;从而避免了对每个表作为一个大的、单独的对象进行管理&#xff0c;为大量数据提供了可伸缩的性能。分区通过将操作…

linux--web服务器

WEB服务器也称为WWW(WORLD WIDE WEB)服务器&#xff0c;主要功能是提供网上信息浏览服务。 WWW 是 Internet的多媒体信息查询工具&#xff0c;是 Internet 上近年才发展起来的服务&#xff0c;也是发展最快和目前用的最广泛的服务。1.rpm -qa|grep httpd 查询服务是否安装…

WPF轮播图实现方式

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;02—代码如下一、MasterCarousel.cs 代码如下using System; …

学过物理的人才能看懂的笑话,你能看明白几个?

全世界只有3.14 % 的人关注了爆炸吧知识1丈夫买了几斤廉价藕&#xff0c;满以为可对妻子炫耀了。不料妻子破口大骂&#xff1a;笨蛋&#xff01;为何不买别的菜&#xff0c;这藕一斤少说也有半斤窟窿啊&#xff01;还说便宜&#xff1f;2第一次坐飞机的两位老妇人在飞机起飞前找…

QtWebkit中浏览器插件的设计-1

我们都知道浏览器中有一套由Netscape浏览器传承下来的插件接口&#xff0c;包括webkit&#xff0c;firefox都是支持的&#xff0c;但是那个开发起来比较困难&#xff0c;并且是平台相关的&#xff0c;借助于Qt的跨平台的特性&#xff0c;可以方便地为Qt开发出一套跨平台的插件。…

mysql左键关联_MySQL的:左键删除重复列加入,3个表

我有一个表,使用3个外键到其他表.当我执行左连接时,我会收到重复的列.MySQL表示,USING语法将减少重复的列,但没有多个键的示例.鉴于&#xff1a;mysql> describe recipes;---------------------------------------------------------------| Field | Type | Null | Key | De…

cisco 双ISP线路接入,链路自动切换方案

最近接到的一个项目&#xff0c;客户总部在惠州&#xff0c;分部在香港&#xff0c;在香港分部设有ERP服务器与邮件服务器&#xff0c;总部出口为铁通10M光纤与网通1M DDN 专线&#xff08;新增&#xff09;&#xff0c;原总部是用netscreen 防火墙与香港的pix 515作IPsec 对接…

js遮罩层以及移动端的上拉框

今天发一个之前写的移动端的项目&#xff0c;主要是讲一下遮罩层的应用&#xff0c;以及顺带提一下移动开发的一些事情。首先按钮点击弹出遮罩层这个大家很熟悉了&#xff0c;这里还是给大家提供一份代码&#xff0c;跟通用的没太大区别&#xff0c;主要讲一下方法&#xff1a;…