天天看点

LINQ to Entity 动态查询

LINQ to Entity动态查询可以将查询条件写成一个字符串,然后由Entity Framework动态解析字符串构造成表达式树,完成查询,下面是几个应用。

1、字符串条件

字符串条件可以直接将比较字符串放入双引号中进行比较,例如:

builder.Append("it.RegisteredPerson = \"" + PersonTextBox.Text + "\"");
           

2、时间条件

时间条件需要对时间字符串利用DATETIME进行转型,例如:

builder.Append("it.RegisteredTime >= DATETIME'" + DateFromPicker.SelectedDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'");
           

这里注意一点,时间日期格式有比较严格的限定,目前并不知道支持哪些时间日期格式,至少ToString的默认格式是不允许的,而”yyyy-MM-dd HH:mm:ss“是可行的。

3、字符串匹配条件

LINQ to Entoty动态查询本身支持了很多内置的函数,如LIKE等,利用这些函数可以完成复杂的查询条件,例如:

builder.Append("it.Address LIKE '" + AddressComboBox.SelectedItem.Text + "%'");