还是那句话,十年河东,十年河西,莫欺少年穷!
学无止境,精益求精...
今天探讨下如何构造动态的LINQ子查询
LINQ,相信大家都写过,很简单,下面以一个基本的范例说明下:
OK,上述的LINQ查询很简单
现在需求有所改变:查询姓 张 李 王 的男人
LINQ 变更如下:
现在需求二次变更如下:查询姓 张 李 王 的男人 并且 年龄要大于20岁
LINQ 二次变更如下:
好了,如果您认为上述构建WHERE子句的方式就是动态构建的话,那么本篇博客就没有什么意义了!
那么什么样的方式才是真正的动态构建呢?
OK,咱们进入正题:
在此我提出一个简单需求如下:
我相信我的需求提出后,你用上述方式就写不出来了,我的需求如下:
请根据数组中包含的姓氏进行查询:
数组如下:
在这里,有人可能会立马想到:分割数组,然后用十个 || 进行查询就行了!
我要强调的是:如果数组也是动态的呢?长度不定,包含的姓氏不定呢?
呵呵,想必写不出来了吧!
还好,LINQ也有自己的一套代码可以实现(如果LINQ实现不了,那么早就没人用LINQ了):
时间问题,就不多写了,直接粘贴代码了
完整的方法是:
View Code
需要指出的是:
生成的LINQ子查询类似于:c=>c.Tags.Contains(s) || c=>c.Alias.Contains(Alias)....
@陈卧龙的博客