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 批量 新增、更新、删除功能扩展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat 7 DBCP 配置(MyS
- 下一篇: Thread的join方法使用解析