一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...
前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们必须景借助于SQL语句。
本文重点
既然ORM解决不了所有的问题,我们得借助于SQL语句,也就是我们可以理解为在DAL层,在ORM对象中,还得支持SQL的操作:
AgileEAS.NET平台中的ORM提供了这种支持,他通过了ORM对象提供的DataAccessor属性完成SQL语句的查询与执行,即在ORM组件中支持下的程序写法:
this.DataAccessor.Execute(sql语句,参数)。
有关于UDA对象的使用请参考一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句、一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用、一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中处理事务三篇文章。
演示的例子
本文的演示我将在前面的演示的基础之上演示实现取得商品字典中最大的IDN号的实现,首先我们修改ClassLibDemo.DAL.SQLServer项目的Product.cs文件,在类Product中增加如下代码:
2 /// 取记录最大号。
3 /// </summary>
4 /// <returns></returns>
5 public int GetMaxIdn()
6 {
7 return (int)this.DataAccessor.Query("select isnull(max(idn),0) maxid from " + this.DbTableName);
8 }
9
10 /// <summary>
11 /// 取记录最大号。
12 /// </summary>
13 /// <returns></returns>
14 public int GetMaxNewIdn()
15 {
16 return (int)this.DataAccessor.Query("select isnull(max(idn),0)+1 maxid from " + this.DbTableName);
17 }
然后我们在ClassLib.OrmDemo项目的DataObjectDemo增加如下代码:
2 /// 演示增加一条记录。
3 /// </summary>
4 public void DemoInsert2()
5 {
6 Product product = new Product();
7 product.OrmAccessor = OrmContext.OrmAccessor;
8
9 product.Idn = product.GetMaxNewIdn();
10 product.Code = "AXX-" + product.Idn.ToString("D6");
11 product.Name = "台式电脑";
12 product.Spec = "主流配置/扣肉i7/21显示";
13 product.Unit = "台/套";
14 product.Description = string.Empty;
15
16 try
17 {
18 product.Insert();
19 System.Console.WriteLine("成功插入记录");
20 }
21 catch (System.Exception exc)
22 {
23 System.Console.WriteLine("插入记录出错:" + exc.Message);
24 }
25 }
26
27 /// <summary>
28 /// 演示读取一条记录。
29 /// </summary>
30 public void DemoQuery2()
31 {
32 Product product = new Product();
33 product.OrmAccessor = OrmContext.OrmAccessor;
34 product.Code = "AXX-" + product.GetMaxIdn().ToString("D6");
35 product.Refresh(); //读数据
36
37 if (product.Exists)
38 {
39 System.Console.WriteLine(string.Format("已查询以记录:Idn={0}\tCode={1}\tName={2}\tSpec={3}\tUnit={4}\tDescription={5}", product.Idn, product.Code, product.Name, product.Spec, product.Unit, product.Description));
40 }
41 else
42 {
43 System.Console.WriteLine("不存在此记录");
44 }
45 }
System.Console.WriteLine("按任意键继续...");System.Console.Read();System.Console.WriteLine("演示自定义业务(取最大号Insert)的例子:");new DataObjectDemo().DemoInsert2();new DataObjectDemo().DemoQuery2();
编译运行,输出结果:
有关本例子所涉及的数据表结构请参考基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义一文,有关数据对象模型定义文件、文档、DDL脚本请下载:http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本文代码下载:ORM.Demo5.rar。
链接
一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
AgileEAS.NET平台开发指南-系列目录
AgileEAS.NET应用开发平台介绍-文章索引
AgileEAS.NET平台应用开发教程-案例计划
AgileEAS.NET官方网站
敏捷软件工程实验室
QQ群:116773358
转载于:https://www.cnblogs.com/eastjade/archive/2010/10/05/1842927.html
一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...相关推荐
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询
前文回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作一文给大家介绍了如果使用ORM实现数据的读取.插入.更新与删除基本业务也讲解了ORM开发基 ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层...
系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出 ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句...
上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义中对本案例所涉及的数据表及部分数据,本文开始将从最基本的业务,数据访问--SQL语句操纵开始. 在AgileEAS.N ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
基实这个系统是我AgileEAS.NET平台应用开发教程-案例计划的详细分解,原来想着按前面文章的思路应用写,但是发布之前的想法有点乱,我就把他分解成两个系列,使用step-by-step的方式来降解 ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示使用报表构建UI-入库业务查询模块...
回顾与说明 前面我们把"商品字典"."商品入库"."商品库存查询"三个模块已经概括或者详细的演示完了,这些模块涉及到简单数据的增.删.修,也 ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印...
系列回顾 从上一篇文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)开始我带领大家进入WinForm篇,并且使用示例的形式详细的演示了数据 ...
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-在UI中应用DataUIMapper组件...
系列回顾 WinForm篇我用了一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)和一步一步教你使用AgileEAS.NET基础类库进行应用开 ...
- 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...
通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...
- 教你一步一步用C语言实现sift算法、上
原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言: 在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...
最新文章
- HTML常见标签易踩坑笔记(一)
- java mybatis XML文件中大于号小于号转义(转载)
- ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)
- 操作系统下查看HBA卡信息wwn的方法
- mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...
- linux spf13 vim安装,Linux 下安装 spf13-VIM
- hive 安装centos7
- 人工智能的未来是强化学习_多主体强化学习与AI的未来
- 基于vue+js的商城、购物网站 毕业设计 毕设源代码的实现和设计(6)购物车
- php获取远程数据,教你如何用php实现LOL数据远程获取
- matlab实现zca去白化,白化算法
- word打开文档很久很慢_解决直接打开Word、Excel文档很慢,而通过先打开WORD、EXCEL程序再打开文档则很快的问题...
- 提取Excel中的超链接
- PS_一寸照片换背景底色
- 生产任务计划单,金蝶KIS旗舰版专业版K3WISE,生产管理软件ERP,金蝶生产任务管理,生产计划管理,自动下推生产领料单
- elasticsearch篇之mapping
- 3个python库的图像增强
- 人生有时需要“跳一跳”
- Python切割图集
- 每个人不起舞的日子,都是对生命的辜负~
热门文章
- LeetCode 1759. 统计同构子字符串的数目
- 数据结构--红黑树 Red Black Tree
- 数据结构--链表--判断一个字符串是否为回文串(单向链表,双向链表)
- 完全相同的4个小矩形如图所示放置_吸睛!矩形在PPT中的创意表现
- 写接口是什么意思啊_科普贴:果汁包装上写NFC到底是什么意思?
- php mysqliquery 返回值,PHP mysqli_multi_query() 函数_程序员人生
- 天不知道地知道你不知道我知道谜底_温州这里有个7000平方米的“寻宝”地,你不知道就亏大了!...
- mysql slow log 分析工具_mysql slow log分析工具的比较
- logging.getLogger(logger)
- Dubbo+Zookeeper+SpringBoot