linq to object 、linq to sql 、linq to entity 批量 新增、更新、删除功能扩展
最近在codeplex上找到了一个功能比较全的linq to object 、linq to sql 、linq to entity新增、修改、删除功能扩展的控件——magiq。
以linq to sql 为例,
var expiredProducts = store.Query(x => x.Products.Where(y => y.ExpirationDate <= DateTime.Now )).ToList();
//store为相当于数据库一对多的父项,Products相当于子项
products.Where( x=> x.ExpirationDate <= DateTime.Now ).Set( x=> x.State, ProductState.Expired )
.Set( x => x.Category.HasExpiredProducts,x=>! x.Category.HasExpiredProducts)
.Update();
//更新操作
store.UpdateCollection( x=> x.Products.Where(y=>y.ExpirationDate <= DateTime.Now ).Set( y=> y.State, ProductState.Expired ));
//一对多时,更新多端的数据
products.Where( x=> x.ExpirationDate <= DateTime.Now ).Delete();
//删除操作
store.DeleteCollection( x=> x.Products.Where(y=>y.ExpirationDate <= DateTime.Now ));
//一对多时,删除多端的数据
baseRecordRepository.BulkInsert( products.Where( x=> x.ExpirationDate <= DateTime.Now )
.Select( new ExpirationRecord { Description = x.Name + " expired" } ));
//批量新增操作,相当于SQL语句:insert into ...select ...
要使用该控件的话,要先 using Magiq;
linq to sql 的话,还需引用MirrorMirror.dll
linq to entity的话,还需引用LinqToEdmx.Core.dll和Xml.Schema.Linq.dll
在调用上述函数前,还需调用Register来表示本次操作是linq to object 、linq to sql 、linq to entity的哪一种操作,
Magiq.MagiqConfigurator.Register(new Magiq.Providers.Sql.MagiqToSql()); //linq to sql
Magiq.MagiqConfigurator.Register(new Magiq.Providers.Objects.MagiqToObjects()); //linq to object
Magiq.MagiqConfigurator.Register(new Magiq.Providers.Entities.MagiqToEntities()); //linq to entity
下面是源码及demo
转载于:https://www.cnblogs.com/zh-xiaot/archive/2011/08/06/2129601.html
linq to object 、linq to sql 、linq to entity 批量 新增、更新、删除功能扩展相关推荐
- LINQ能不能用系列(一)LINQ to Object 效率比对
前言 简介:LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展. 分类:LINQ to Object, LINQ to XM ...
- Linq To Object标准操作符最强总结
Where OfType<TResult>: 说明:筛选操作符定义了返回元素的条件.Where查询操作符中,可以使用谓词.例如Lambda表达式定义的谓词,来返回布尔值.OfType< ...
- LINQEF任我行LinQ to Object
LinQ to Objects是LinQ家庭的核心,其它的LinQ也使用了与LinQ to Objects相同的查询句法.最终编译器都是把LinQ句法翻译成扩展方法的链式表达式,同时把扩展方法中的la ...
- 第13章 LINQ to Object
第13章 LINQ to Object 在第12章,我们学习了很多C#3的新特性,包括匿名类型.扩展方法.隐式类型等,而这些新特性都是为LNQ服务的. LINQ to Object将查询语句转换为委托 ...
- LinQ To Object 基本用法
LinQ To Object 基本用法 inq的基本语法:var result = from item in container select item; linq获取数据子集: var result ...
- datatable中使用linq的条件或_C# 10. LINQ 的三种查询语句写法
前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命名空间中使用.LINQ 为我们提供了通用的查 ...
- linq拼接where语句_C# 10. LINQ 的三种查询语句写法
C# 10. LINQ 的三种查询语句写法 前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命 ...
- LINQ学习(一):LINQ初认识
一.简介 1.什么是Linq? LINQ(Language Integrated Query) 语言继承查询. LINQ是一组语言特性和API,可以使用统一的方式编写各种查询.用于保存和检索来自不同数 ...
- linq java_Java 8是否还需要LINQ?还是已经比LINQ更好?
Java 8是否还需要LINQ?还是已经比LINQ 更好?,LINQ一直是.net程序系统中的一个非常棒的东东.VisualStudio2008已经引入了lambda表达式和monads,而同一时间J ...
最新文章
- 初学者必学的C++项目!花3天搞定
- 图像编程魔法门(By C#) 目录
- Linux5下DHCP配置
- ts 函数声明及泛型函数
- 【Linux系统编程】进程间通信之消息队列
- 微信公众平台开发(97) 图文消息
- (建议收藏)前端面试必问的十六条HTTP网络知识体系
- 热门编程语言,热门开源项目,MS-DOS,Python,Calcurse等
- centos7中firewall防火墙命令详解
- linux 换行符 字节,linux的wc打印换行符,字和字节计数
- 99定时器设计c语言,51单片机写的曝光定时器C语言程序
- 机器学习入门(二)数据分析处理库pandas
- [Word2019]笔记内容005:解决Office2019中word的严重卡顿问题
- 迪思杰oracle 11g rac,Oracle 11g RAC UDEV管理RAC共享存储
- 软考高项——【项目进度管理】
- 王晋康 - 终极爆炸 ▪ 王晋康科幻小说精选集3(2014年4月24日)
- Terraria及tModloader开服教程
- linux网络分析命令:ss
- 无线数字平板探测器维修Mars1717XU-VSI故障分析
- 逆向路径转发 linux,RPF(Reverse Path Forwarding 反向路径转发)技术