多条件动态查询是任何一个数据系统都会处理的问题。如果使用纯SQL和数据库进行交互,可以使用SQLHepler之类的工具根据用户输入来动态生成SQL语句。在EF框架下进行多条件动态查询,有各种不同的方法。最近看了和尚兄的代码,简单易懂,值得学习。其基本思想就是动态的组装查询计划,避开动态生成委托的复杂性。
数据模型类:
class Person
{
public string Name;
public int Age;
public float Weight;
public string Hobby;
}
在构造函数中初始化数据:
private List<Person> m_DataSourc;
//构造函数中初始化演示数据源
public Demo1()
{
m_DataSourc = new List<Person>
{
new Person{Name="熊大", Age=31,Weight=125,Hobby="吃饭"},
new Person{Name="熊二", Age=30,Weight=120,Hobby="睡觉"},
new Person{Name="光头强", Age=28,Weight=70,Hobby="砍树&