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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值