收集一:
http://www.cnblogs.com/l1b2q31/category/242373.html
posted @ 2010-04-19 15:14 l1b2q31 阅读(416) | 评论 (0) 编辑
ADO.NET Entity Framework 深入分析, Part 4 (提供示例程序下载)
posted @ 2010-04-19 15:13 l1b2q31 阅读(277) | 评论 (0) 编辑
Entity Data Model (EDM) 深入分析, Part 3
posted @ 2010-04-19 15:13 l1b2q31 阅读(185) | 评论 (0) 编辑
Entity Data Model (EDM) 深入分析, Part 2
posted @ 2010-04-19 15:12 l1b2q31 阅读(237) | 评论 (0) 编辑
Entity Data Model (EDM) 深入分析, Part 1
====================================================
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
OrderByDescending
下面是源码及demo