DevExpress旗下的 eXpress Persistent Objects(XPO) 是专为.NET平台提供的高级对象关系映射工具,旨在让开发人员在更高的抽象层级管理他们的数据。接下来小编将为大家奉送上一系列的入门教程,让XPO初学者能快速上手这一工具。
eXpress Persistent Objects可通过指定逻辑表达式作为数据筛选器,今天这篇教程就为大家介绍如何创建数据查询条件。
制定条件
XPO为筛选条件提供了多个选项。比如,相同的标准代表逻辑表达式 (Age > 30)可以用两个不同的符号进行表示。代码如下:
创建一个 BinaryOperator。将适当的运算对象作为运算器结构的参数:
1
2
3
|
using
DevExpress.Data.Filtering;
CriteriaOperator criteria =
new
BinaryOperator(
"Age"
, 30, BinaryOperatorType.Greater);
|
条件还可以用可读字符串进行表示,但这个字符串必须使用CriteriaOperator.Parse静态方法:
1
|
CriteriaOperator criteria = CriteriaOperator.Parse(
"Age > 30"
);
|
你完全可以根据自己的喜好选择适合的方法。XPO提供各种条件操作符,可以让复杂的逻辑表达式变得更加简单。每个当前数据存储存在两个属性:
- Criteria - 指定条件用于数据存储端的对象筛选
- Filter - 指定客户端的对象筛选条件
服务器端条件
如果想检索年龄大于30以上的人,可以将条件部署到 XPCollection's XPBaseCollection.Criteria 属性:
1
2
3
4
|
private
void
Form1_Load(
object
sender, EventArgs e) {
// ...
xpCollection1.Criteria = criteria;
}
|
还有种方法是将条件部署到集合的构造函数,这样就不用设置XPBaseCollection.Criteria属性了。
在设计时,你可以用一个非常方便的编辑器去可视化编辑条件表达式。启用这个编辑器是在XpCollection组件上单击省略号按钮,然后找到Properties窗口中的Criteria:
客户端查询
假设要查询年龄大于30但小于40的人,这里就要创建一个新的条件表达式然后将它部署到集合的 XPBaseCollection.Filter 属性:
1
2
3
4
5
|
private
void
Form1_Load(
object
sender, EventArgs e) {
CriteriaOperator filter = CriteriaOperator.Parse(
"Age > 30 AND Age < 40"
);
xpCollection1.Filter = filter;
}
|
由于是客户端查询,初始的完整数据集可通过设置 XPBaseCollection.Filter 属性为null 的方式存储起来,而不需要访问数据库。
转自慧都控件http://www.evget.com/article/2014/1/15/20412.html