最近在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 批量 新增、更新、删除功能扩展相关推荐

  1. LINQ能不能用系列(一)LINQ to Object 效率比对

    前言 简介:LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展. 分类:LINQ to Object, LINQ to XM ...

  2. Linq To Object标准操作符最强总结

    Where OfType<TResult>: 说明:筛选操作符定义了返回元素的条件.Where查询操作符中,可以使用谓词.例如Lambda表达式定义的谓词,来返回布尔值.OfType< ...

  3. LINQEF任我行LinQ to Object

    LinQ to Objects是LinQ家庭的核心,其它的LinQ也使用了与LinQ to Objects相同的查询句法.最终编译器都是把LinQ句法翻译成扩展方法的链式表达式,同时把扩展方法中的la ...

  4. 第13章 LINQ to Object

    第13章 LINQ to Object 在第12章,我们学习了很多C#3的新特性,包括匿名类型.扩展方法.隐式类型等,而这些新特性都是为LNQ服务的. LINQ to Object将查询语句转换为委托 ...

  5. LinQ To Object 基本用法

    LinQ To Object 基本用法 inq的基本语法:var result = from item in container select item; linq获取数据子集: var result ...

  6. datatable中使用linq的条件或_C# 10. LINQ 的三种查询语句写法

    前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命名空间中使用.LINQ 为我们提供了通用的查 ...

  7. linq拼接where语句_C# 10. LINQ 的三种查询语句写法

    C# 10. LINQ 的三种查询语句写法 前言: LINQ(语言集成查询)是 C#编程语言中的一部分.它在.NET Framework 3.5 和 C#3.0 被引入,在 System.Linq 命 ...

  8. LINQ学习(一):LINQ初认识

    一.简介 1.什么是Linq? LINQ(Language Integrated Query) 语言继承查询. LINQ是一组语言特性和API,可以使用统一的方式编写各种查询.用于保存和检索来自不同数 ...

  9. linq java_Java 8是否还需要LINQ?还是已经比LINQ更好?

    Java 8是否还需要LINQ?还是已经比LINQ 更好?,LINQ一直是.net程序系统中的一个非常棒的东东.VisualStudio2008已经引入了lambda表达式和monads,而同一时间J ...

最新文章

  1. 初学者必学的C++项目!花3天搞定
  2. 图像编程魔法门(By C#) 目录
  3. Linux5下DHCP配置
  4. ts 函数声明及泛型函数
  5. 【Linux系统编程】进程间通信之消息队列
  6. 微信公众平台开发(97) 图文消息
  7. (建议收藏)前端面试必问的十六条HTTP网络知识体系
  8. 热门编程语言,热门开源项目,MS-DOS,Python,Calcurse等
  9. centos7中firewall防火墙命令详解
  10. linux 换行符 字节,linux的wc打印换行符,字和字节计数
  11. 99定时器设计c语言,51单片机写的曝光定时器C语言程序
  12. 机器学习入门(二)数据分析处理库pandas
  13. [Word2019]笔记内容005:解决Office2019中word的严重卡顿问题
  14. 迪思杰oracle 11g rac,Oracle 11g RAC UDEV管理RAC共享存储
  15. 软考高项——【项目进度管理】
  16. 王晋康 - 终极爆炸 ▪ 王晋康科幻小说精选集3(2014年4月24日)
  17. Terraria及tModloader开服教程
  18. linux网络分析命令:ss
  19. 无线数字平板探测器维修Mars1717XU-VSI故障分析
  20. 逆向路径转发 linux,RPF(Reverse Path Forwarding 反向路径转发)技术

热门文章

  1. 原以为原神是米哈游的极限,看过美术总监的年番,恍然大悟!
  2. Java微服务(一)【idea安装2020版本】
  3. Spring boot 上传文件时 MultipartFile 报空指针
  4. Tomcat可运行源码资源分享
  5. 【dp】POJ-2209
  6. 最详细的CentOS 6与7对比(一):常见设置对比
  7. Maven学习小结(七 生命周期[转])
  8. 我弥留之际 - 许立志 (珍藏)
  9. 类库dll引用不成功问题
  10. 大四中软实习笔记20130226