看完资料后敲了一下自己的脑袋,这东西自己竟然没有想到(基础没打好!),条件对象加了运算符重载后使用方便和简洁多了.以上面的条件例重载后的查询对象表达式:((exp1&exp2)|(exp3&exp4)).得到的效果自己也意想不到,运算符重载真是一个不错误的功能,可惜以前没有想到过!
((OrderID>10600) and Order < 10700)) or (OrderID >10800 and OrderID<10900)) or EmployeeID=1
运用条件对象查询代码如下:
using(HFSoft.Data.IDataSession session = HFSoft.Data.MappingContainer.ConfigContainer.OpenSession())
{
Expression exp1 = ExpressionFactory.Rt("OrderID",10600)& ExpressionFactory.Le("OrderID",10700);
Expression exp2 = ExpressionFactory.Rt("OrderID",10800)& ExpressionFactory.Le("OrderID",10900);
session.Open();
System.Collections.IList list = session.List(typeof(Northwind.Entitys.Orders),(exp1 | exp2) | ExpressionFactory.Eq("EmployeeID",1));
this.dataGrid1.DataSource = list;
}
事例代码