原文:https://www.cnblogs.com/liuruitao/p/10049191.html

原文:https://www.cnblogs.com/yaopengfei/p/7751545.html

环境:

  就只安装了两个包,除此之外无其它任何配置,
  EntityFramework、Z.EntityFramework.Extensions

 一个简单的测试:

using System;
using System.Collections.Generic;
using System.Data.Entity; namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
using (var db = new BlogEntities())
{
//添加一条数据
//Blog entity = new Blog();
//entity.BlogId = 1;
//entity.Title = "title1";
//entity.CreateDate = DateTime.Now;
//db.Blogs.Add(entity);
//db.SaveChanges(); //查看 添加的数据 和 数据库链接地址
//int i = db.Blogs.ToList().Count;
//var d = db.Blogs.FirstOrDefault();
//var str = db.Database.Connection.ConnectionString; int total = ; //测试1
DateTime dt1 = DateTime.Now;
for (int i = ; i < total; i++)
{
Blog entity = new Blog();
entity.BlogId = ;
entity.Title = "title" + i.ToString();
entity.CreateDate = DateTime.Now;
db.Blogs.Add(entity);
db.SaveChanges();
}
Console.WriteLine("不批量插入1:" + (DateTime.Now - dt1).TotalMilliseconds); //测试2 和测试1的区别 在于 db.SaveChanges(); 的位置
DateTime dt2 = DateTime.Now;
for (int i = ; i < total; i++)
{
Blog entity = new Blog();
entity.BlogId = ;
entity.Title = "title" + i.ToString();
entity.CreateDate = DateTime.Now;
db.Blogs.Add(entity);
}
db.SaveChanges();
Console.WriteLine("不批量插入2:" + (DateTime.Now - dt2).TotalMilliseconds); //测试3 需要引入Z.EntityFramework.Extensions 批量插入
DateTime dt3 = DateTime.Now;
List<Blog> list = new List<Blog>();
for (int i = ; i < total; i++)
{
Blog entity = new Blog();
entity.BlogId = ;
entity.Title = "title" + i.ToString();
entity.CreateDate = DateTime.Now;
list.Add(entity);
}
db.BulkInsert(list);
db.SaveChanges();
Console.WriteLine("批量插入:" + (DateTime.Now - dt3).TotalMilliseconds); Console.ReadKey();
}
}
} public class Blog
{
public int BlogId { get; set; }
public string Title { get; set; }
public DateTime CreateDate { get; set; }
} public class BlogEntities : DbContext
{
public DbSet<Blog> Blogs { get; set; }
} }

EF 批量添加数据的更多相关文章

  1. EF批量添加数据性能慢的问题的解决方案

    //EF批量添加数据性能慢的问题的解决方案 public ActionResult BatchAdd() { using (var db = new ToneRoad.CEA.DbContext.Db ...

  2. EF批量添加数据之修改SQL Server执行上限

    asp.net core 项目 打开Startup.cs services.AddDbContext<MyContext>( options => { options.UseSqlS ...

  3. .Net中批量添加数据的几种实现方法比较

    在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...

  4. ThinkPHP批量添加数据和getField()示例

    批量添加数据 // 批量添加数据 $User = M('users'); $dataList[] = array('name'=>'thinkphp','email'=>'thinkphp ...

  5. thinkphp3.2 批量添加数据

    这是我遇到的thinkphp3.2 当中最让我无语的坑 批量添加数据有个方法是 addAll() 这个方法一定要注意数组的键名,一定要整齐!!! 可以在存入数据前,用ksort()方法将数组的键名排序 ...

  6. spring boot之使用通用Mapper批量添加数据

    通用Mapper是一款针对mybatis进行扩展的轻量级组件,使用起来非常方便.当调用其针对mysql进行批量添加数据的方法时,发现报错,仔细研究了一番,发现是在使用通用Mapper上出现了问题.下面 ...

  7. Yii2如何批量添加数据

    批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧. 在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然, ...

  8. ADO.NET- 中批量添加数据的几种实现方法比较

    在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...

  9. 使用EF批量新增数据十分缓慢

    使用EF来批量新增数据,发现效率非常的差,几千条数据时甚至需要几分钟来执行,迫于无奈使用sql来执行了. 今天偶然看到一篇关于EF的文章,才发觉原来是自己对EF不够了解的原因. 一般新增时我们是将所有 ...

随机推荐

  1. 小菜鸟之servlet

    # Servlet课程-1和2和3 容 Web项目 项目代码部署在服务器上, 一般分为c\s(客户端\服务器端)和b\s(浏览器/服务器) 服务器 常用的服务器(tomcat服务器) tomcat的目 ...

  2. ffmpeg AVFrame结构体及其相关函数

    0. 简介 AVFrame中存储的是原始数据(例如视频的YUV, RGB, 音频的PCM), 此外还包含了一些相关的信息, 例如: 解码的时候存储了宏块类型表, QP表, 运动矢量等数据. 编码的时候 ...

  3. 使用JavaScript和React编写原生移动应用

    使用JavaScript和React编写原生移动应用 React Native使你只使用JavaScript也能编写原生移动应用. 它在设计原理上和React一致,通过声明式的组件机制来搭建丰富多彩的 ...

  4. 关于CPU的一些操作(CPU设置超频)

    常见的几种CPU模式: .ondemand:系统默认的超频模式,按需调节,内核提供的功能,不是很强大,但有效实现了动态频率调节,平时以低速方式运行,当系统负载提高时候自动提高频率.以这种模式运行不会因 ...

  5. CW2A与CA2W

    字符串的ASCII和UNICODE之间的转换 1)Win32提供了API函数MultiByteToWideChar和WideCharToMultiByte来提供这种功能. 2)ATL还提供了另一套转换 ...

  6. mybatis+oracle批量插入报不符合协议和sql未正确结束

    在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...

  7. nodejs和npm

    Node.js安装及环境配置之Windows篇:https://www.cnblogs.com/liuqiyun/p/8133904.html 淘宝NPM镜像:https://npm.taobao.o ...

  8. 异常-throws的方式处理异常

    定义功能方法时,需要把出现的问题暴露出来让调用者去处理.那么就通过throws在方法上标识. package cn.itcast_05; import java.text.ParseException ...

  9. [转载] ReLU和BN层简析

    [转载] ReLU和BN层简析 来源:https://blog.csdn.net/huang_nansen/article/details/86619108 卷积神经网络中,若不采用非线性激活,会导致 ...

  10. 关于spring中bean配置的几件小事

    一.IOC和DI 1.IOC(Inversion of Control) 其思想是反转资源获取的方向.传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源:而应用了IOC之后 ...