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 + "%'");