EF扩展库(批量操作)
2016-03-09 15:20
274 查看
EF删除和修改数据只能先从数据库取出,然后再进行删除
delete from Table1 where Id>5;
update Table1 set Age=10;
我们需要这样操作
在github中提供了一个EF扩展库,支持批量操作,不用先查询出来,然后逐个删除
https://github.com/loresoft/EntityFramework.Extended
在VS可以直接通过NuGet安装(因为我EF是5.0的,所以加上版本号,现在出到6了)
PM> Install-Package EntityFramework.Extended -Version 5.0.0.73
安装完成后
扩展库还支持批量查询功能
例如:在分页查询的时候,需要查询结果数,和结果集
EF做法:
EF扩展库的做法
扩展库还支持查询缓存功能
如果在10秒内重复查询,则会从缓存中读取,不会查询数据库
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扩展库,支持批量操作,不用先查询出来,然后逐个删除
https://github.com/loresoft/EntityFramework.Extended
在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秒内重复查询,则会从缓存中读取,不会查询数据库
相关文章推荐
- CocoaLumberjack 学习总结(三)
- 多个项目之间Debug
- AppDelegate各个方法的作用
- ubuntu技巧--ubuntu Qt Creator debug
- FFTW编译对应Windows lib32或lib64库文件
- Linux查看设备被哪个进程占用
- MySQL索引(未完待续)
- C# DataView数据筛选与排序
- 图解微服务架构演进
- Leetcode:Swap Nodes in Pairs 单链表相邻两节点逆置
- 搭建Solr集群的推荐方案
- 《我是一只IT小小鸟》读后感
- Altera 破解 来自转载
- Notepad++正则表达式语法
- 分布式漏洞扫描
- enum 在c中的使用
- H3C防火墙F1000-C-G通过命令行配置,开启对设备的Web管理
- android 动态设置控件长度宽度
- 带图片二维码生成
- C# 字符串转换为计算公式