在进行数据查询时,经常碰到需要动态构建查询条件。使用LINQ实现这个需求可能会比以前拼接SQL语句更麻烦一些。本文介绍了3种运行时动态构建查询条件的方法。
本文中的例子最终实现的都是同一个功能,从Northwind数据库Customers表中搜索出CompanyName列带有keywords中任意元素的项。keywords是个字符串数组,该数组长度在编译时是不确定的。思路及方法说明写在代码注释中.
1.表达式树
1
public static IEnumerable<Customers> GetCustomersFunc1(string[] keywords)
2
2
2.使用System.Linq.Dynamic
1
public static IEnumerable<Customers> GetCustomersFunc2(string[] keywords)
2
2
3.披着Linq的外衣拼接SQL语句
1
public static IEnumerable<Customers> GetCustomersFunc3(string[] keywords)
2
2