博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF扩展库(批量操作)
阅读量:6917 次
发布时间:2019-06-27

本文共 1153 字,大约阅读时间需要 3 分钟。

EF删除和修改数据只能先从数据库取出,然后再进行删除

  delete from Table1 where Id>5;

  update Table1 set Age=10;

我们需要这样操作

//删除var t1 = context.Table1.Where(t => t.Id > 5).ToList();foreach(var t in t1){    context.Table1.Remove(t);}context.SaveChange();//更新var t1 = context.Table1.ToList();foreach(var t in t1){    t.Age = 10;}context.SaveChange();

 

在github中提供了一个EF扩展库,支持批量操作,不用先查询出来,然后逐个删除

  

在VS可以直接通过NuGet安装(因为我EF是5.0的,所以加上版本号,现在出到6了)

  PM> Install-Package EntityFramework.Extended -Version 5.0.0.73

 

安装完成后

//删除context.Table1.Delete(u => u.Id > 5);context.SaveChange();//更新context.Table1.Update(u => u.Id > 5, u => new Table1 { Age = 10 });context.SaveChange();

 

扩展库还支持批量查询功能

例如:在分页查询的时候,需要查询结果数,和结果集

EF做法:

var q = container.Users.Where(u => u.Name.StartsWith("a"));//查询2次var count = q.Count();var data = q.Skip(10).Take(10).ToList();

 

EF扩展库的做法

var q = context.Table1.Where(t => t.Name.StartsWith("a"));var q1 = q.FutureCount();var q2 = q.Skip(10).Take(10).Future();//一次查询var data = q2.ToList();var count = q1.Value;

 

扩展库还支持查询缓存功能

var users = container.Users.Where(u => u.Id > 5).FromCache(CachePolicy.WithDurationExpiration(TimeSpan.FromSeconds(10)));

如果在10秒内重复查询,则会从缓存中读取,不会查询数据库

 

 

 

 

转载地址:http://xsxcl.baihongyu.com/

你可能感兴趣的文章
JAVA7新特性
查看>>
我的友情链接
查看>>
安装vsftp
查看>>
数据库同步产品PAC市场定位
查看>>
Linux 用户管理
查看>>
搭建open***
查看>>
哪个会话引起阻塞并且它们在运行什么
查看>>
各个版本的金蝶kis的区别
查看>>
JS闭包的理解
查看>>
Linux下查看操作系统信息、内存情况及cpu信息
查看>>
影像拍攝及呈現能力的提升
查看>>
Windows Server 2012 Hyper-V新特性(11)
查看>>
Android快速开发系列 10个常用工具类
查看>>
我的友情链接
查看>>
1. 引用类型的类型转换
查看>>
关于linux hrtimer高精度定时器的使用注意事项
查看>>
高清视频教程网站的搭建和分享
查看>>
Android 混淆代码总结
查看>>
Spark 二次排序
查看>>
Windows2008/2012多用户同时远程连接终端服务授权
查看>>