Linq多表查询条件批量删除

      前阵写了Linq的单表生成相对Sql执行的批量删除,总觉得删除条件太局限了,并且又不能屏蔽linq的级联条件,这很容易误导一些人。所以想了应该还是要支持才好。呵呵。

     其实思路和上次一样,就是生成Sql,用Linq自身条件组合sql应用,没有什么好说的。组合sql用 EXISTS关键字,组合一个子查询。

DELETE FROM [TableName]   WHERE   EXISTS(select ..from [TableName]  where query );

 

直接上Code:

Linq多表查询条件批量删除代码

 

 

  调用方式就很简单了,一个Lamdam表达式,就搞定。比如

Console.Write( DataContext.test.Delete(t => t.id != null||t.name.Contains("qq")&&t.Orders.OrderDate<=DateTime.Now));

Linq多表查询条件批量删除

 

     例子没有从重写Linq或者扩展Linq表达式出发,因为从这里出发我能力估计还差一筹,呵呵还是我觉得没有必要,这样的实现是否更简单,实现的功能更多些,为何不重用人家MS的东西呢,个人观点而已


本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2010/09/15/1826624.html,如需转载请自行联系原作者

上一篇:js判断是否是pc端打开还是手机端打开


下一篇:快速搭建LAMP环境--学习记录