EF批量操作数据之EntityFramework.Extended
来源:互联网 发布:adobe muse mac 破解 编辑:程序博客网 时间:2024/05/16 08:08
一 、EntityFramework.Extented整理
Git源代码地址:
https://github.com/loresoft/EntityFramework.Extended
二 、使用 实例
1.批量添加 数据 AddRange()发放,EF自带改方法
TestOne _context = new DBA.TestOne();DateTime start = DateTime.Now;for (int i = 0; i < 10000; i++){ _context.Numeber1.Add(new Numeber1() { Num1 = i }); _context.SaveChanges();}Console.WriteLine(_context.Numeber1.Count());Console.WriteLine("总时长秒数:" + (DateTime.Now - start).TotalSeconds); //调试状态下 500多秒,非调试状态下 280秒//批量新增List<Numeber1> list = new List<Numeber1>();for (int i = 0; i < 10000; i++){ list.Add(new Numeber1() { Num1 = i });}_context.Numeber1.AddRange(list);_context.SaveChanges();Console.WriteLine("总时长秒数:" + (DateTime.Now - start).TotalSeconds); //批量添加9秒钟
2.批量更新
//data为修改的行数int data =context.LogData.Where(a=>a.EntityKey=="aa").Update(b=> new LogData { EntityName = "ss" });//第二种写法,这种是针对DbSet的,已经标注过时了 var data = context.LogData.Update(a => a.EntityKey == "aa",b=> new LogData { EntityName = "ss" });
//批量更新TestOne _context = new DBA.TestOne();DateTime start = DateTime.Now;int count = _context.Numeber1.Where(q => q.ID > 10000).Update(q => new Numeber1(){ Num1 = q.Num1 * 1000});_context.SaveChanges();Console.WriteLine("总共更新数据:" + count);Console.WriteLine("总时长秒数:" + (DateTime.Now - start).TotalSeconds); //批量更新:1秒多时间3.批量 删除
//记得引用using EntityFramework.Extensions;//这两种写法都可以,Context是你的EF上下文对象.context.LogData.Delete(a => a.EntityKey == "aa");context.LogData.Where(a => a.EntityKey == "aa").Delete();
//批量删除操作TestOne _context = new DBA.TestOne();DateTime start = DateTime.Now;int count = _context.Numeber1.Where(q => q.ID <= 30000).Delete();_context.SaveChanges();Console.WriteLine("总共删除数据:" + count);Console.WriteLine("总时长秒数:" + (DateTime.Now - start).TotalSeconds); //批量删除:1秒左右时间
4.批量查询
var count =context.LogData.FutureCount(); var data = context.LogData.FutureFirstOrDefault(); var datalist = context.LogData.Future(); //在同一个代码上下文中,count,data,datalist这三个对象 //任意一个,第一次tolist或者.Value的时候,会连接一次数据库 //同时查询这三个数据,而不会分三次查询 var datalists = datalist.ToList(); int countdata = count.Value;
5.查询缓存
//使用默认的缓存时间var tasks = db.Tasks .Where(t => t.CompleteDate == null) .FromCache();//查询结果缓存300秒var tasks = db.Tasks .Where(t => t.AssignedId == myUserId && t.CompleteDate == null) .FromCache(CachePolicy.WithDurationExpiration(TimeSpan.FromSeconds(300)));
更多参考:
EF汇总函数使用注意事项Max()/Min()等
EF中查看上下文执行的Sql语句
EF GroupBy多个字段
http://www.cnblogs.com/GuZhenYin/p/5482288.html
0 0
- EF批量操作数据之EntityFramework.Extended
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
- 如何使用Entityframework.Extended
- EF中的那些批量操作
- EF-EntityFrameWork中文名:实体框架(数据持久化框架)
- EF 批量更新/删除数据
- EF 批量更新/删除数据
- EF扩展库(批量操作)
- [转]EF 批量更新/删除数据
- EF大数据批量处理----BulkInsert
- EntityFramework.BulkInsert扩展插入数据和EF本身插入数据比较
- EntityFramework.BulkInsert扩展插入数据和EF本身插入数据比较
- 谈EntityFramework数据更新之技巧
- EntityFramework.Extended MYSQL 报异常处理方法
- 在C#中使用EF(EntityFramework)插入数据到DB的异常
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- 2017年大数据可视化机遇,这5大行业不容错过
- fork()函数
- Spark性能优化总结
- 使用 Sahi 实现 Web 自动化测试
- 老司机带你get海量网页请求数据
- EF批量操作数据之EntityFramework.Extended
- oc-------体彩11选五算法
- sqlldr时报错ORA-21561: OID generation failed
- SVG图片与文字的整合
- JavaScript初始化设置
- 谈程序的腐化
- 查看Linux当前标准输入并修改
- eclipse的控制台Console总是跳出来
- error: (-215) ssize.width > 0 && ssize.height > 0 in function cv::resize