Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
来源:互联网 发布:来肯云商软件怎么样 编辑:程序博客网 时间:2024/06/05 10:47
今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很多介绍EF使用的文章了。
E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended
也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对IQueryable<T>的扩展,而不是DbSet<T>(已经标记为弃用),所以跟我一样有隔离癖好的就可以大胆使用了。下面介绍如何批量删除、更新、查询。
批量删除
本来我们需要这样删除
//EF原生的删除需要先取出entity然后removecontext.Remove(context.Users.First(u=>u.Key==xxx);//如果要删除更多foreach(var user in context.Users.Where(u => u.FirstName == "firstname").ToList()){context.Remove(user);}本来一句sql可以解决的问题,变得复杂了。
使用ORM是为了跟sql尽量的解耦,并且能在编译时检查出更多的错误,但是上面的写法让人堵的慌,如果你也有这种感觉下面的写法是不是就是你脑子里想要的东西呢。
----引用EF Extend Libary后删除只需要一次就完成了,效率高了很多,也不需要太多的连接资源,使用更方便了
//delete all users where FirstName matchescontext.Users.Delete(u => u.FirstName == "firstname");//当然如果我这样写也可以context.Users.Where(...).Delete();当第一次看到EF EL的时候就被这种写法吸引住了,这不就是我们一直找的东西么。
批量更新
//批量更新用户名中包含大写J的用户设置工资为999context.Users.Update( u => u.Name.Contans("J"), u2 => new User {Salary = 999});//第一个参数也可以传入已经有的IQuaryable的参数如下var users = context.Users.Where(u => u.FirstName == "firstname");context.Users.Update(users, u => new User {FirstName = "newfirstname"});
//当然了我最喜欢的还是这样的写法
context.Users.Where(u => u.FirstName == "firstname").Update(u=>new User{FirstName = "newfirstname"})是不是更喜欢这个扩展库了?我是爱不释手了,可惜现在才开始用。
批量查询
其实现在的查询已经很棒了,默认的延迟查询都能满足基本需求,但是有时候总希望更极致一点,比如现有的查询无法满足分页这个顽固的需求。
//看看EF EL怎么解决// 复用的查询var q = db.Tasks.Where(t => t.Priority == 2);// 获取总数var q1 = q.FutureCount();// 获取分页的数据var q2 = q.Skip(pageIndex).Take(pageSize).Future();// 这里会触发上面所有Future函数中的查询包装到一个连接中执行int total = q1.Value;//因为已经得到结果了,这里不会再次查询var tasks = q2.ToList();
作者:KKcat
出处:http://jinzhao.cnblogs.com/
0 0
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- EF扩展库(批量操作--删除、更新等)
- Entity Framework(EF)数据查询
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
- Entity Framework 批量删除
- entity framework 批量删除
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- EF 批量更新/删除数据
- EF 批量更新/删除数据
- Entity Framework若干个扩展
- EF扩展库(批量操作)
- Entity Framework(EF)知识整理
- Entity Framework(实体框架 EF)
- CSS 简洁表单布局
- 2012年下半年的无线电合订本光盘资料
- Java中的Set, List, Map漫谈
- Android-获取手机已经安装的程序-推送好友
- android_画图_图片剪切
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
- mysql学习(二),用户数据库交互
- Android下使用Properties文件保存程序设置
- Eclipse中Ctrl+Alt+Down和Ctrl+Alt+Up不起作用
- Hadoop集群算法调用--web平台2.0
- Android 自学开发绝对好资料-SDK各包绿色下载
- 2005高中数学联赛第15题补充解答
- 单片机C语言应用100例(第二版)光盘资料 作者王东峰 陈圆圆 郭向阳
- iOS安全:谁能让iOS安全风险曝光-dropout jeep