现在的位置: 首页 > 综合 > 正文

NClay数据持久化处理入门编-条件表达式

2011年10月20日 ⁄ 综合 ⁄ 共 1602字 ⁄ 字号 评论关闭
         条件表达式在NClay数据持久化处理中起着非常重要的作用,它并不是一个简单的查询条件;除了数据添加几呼所有数据操作都可以直接在条件的基础上进行操作,包括数据修改、删除、查询和统计(于是起了个条件驱动的操作方式)。下面大概介绍一下条件表达式的结构和在实际应用中的过程。

n        结构

所有条件都是基于NClay.Data.Expressions.IExpression的实现,重载&|运算符用于表示SQL中的andor条件运行。



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.产品.单价));

 

组件的条件表达式操作就暂时介绍到这里,在下一章时通过讲解视图对象的定义和条件的结合实现更丰富复杂的数据查询和统计。

 

相关代码下载

 

n        相关章节

l         NClay数据持久化处理入门编

l         NClay数据持久化处理入门编-条件表达式

【上篇】
【下篇】

抱歉!评论已关闭.