n 结构
所有条件都是基于NClay.Data.Expressions.IExpression的实现,重载&和|运算符用于表示SQL中的and和or条件运行。
IExpression提供非常丰富的数据操作接口,当使用人员得到条件表达式基本就可以在它的基础上完成所需要的数据操作。
n 条件的获取
除了空条件外,所有条件都必须过组件提供的Field映射类型运算或方法得到;Field重载很多运算符功能方便条件的产生。
n 代码用例
l 获取相关类别产品价大于多少的产品
IList<产品> items;
items = (DB.产品.类别ID == 1 & DB.产品.单价> 10).List<产品>();
foreach (产品 item in items)
{
Console.WriteLine("");
Console.WriteLine(item.产品名称+ "\t\t" + item.单价);
}
l 获取有效的产品
items = (DB.产品.中止== true).List<产品>();
foreach (产品 item in items)
{
Console.WriteLine("");
Console.WriteLine(item.产品名称+ "\t\t" + item.单价);
}
l 修改某一产品价格
int id = 1;
产品 item = DaoContext.Load<产品>(id);
Console.WriteLine(item.单价);
(DB.产品.产品ID == id).Edit<产品>(DB.产品.单价.Set(30));
item = DaoContext.Load<产品>(id);
Console.WriteLine(item.单价);
l 删除某条件下的产品
Console.WriteLine((DB.产品.中止== true).CountOf<产品>());
(DB.产品.中止== true).Delete<产品>();
Console.WriteLine((DB.产品.中止== true).CountOf<产品>());
l 一些简单的统计操作
Console.WriteLine((DB.产品.中止== true).CountOf<产品>());
Console.WriteLine((DB.产品.中止== true).SumOf<产品>(DB.产品.库存量));
Console.WriteLine((DB.产品.类别ID == 1).MaxOf<产品>(DB.产品.单价));
组件的条件表达式操作就暂时介绍到这里,在下一章时通过讲解视图对象的定义和条件的结合实现更丰富复杂的数据查询和统计。