一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务
2010-10-05 08:18
1116 查看
前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们必须景借助于SQL语句。
AgileEAS.NET平台中的ORM提供了这种支持,他通过了ORM对象提供的DataAccessor属性完成SQL语句的查询与执行,即在ORM组件中支持下的程序写法:
this.DataAccessor.Execute(sql语句,参数)。
有关于UDA对象的使用请参考一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句、一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用、一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中处理事务三篇文章。
然后我们在ClassLib.OrmDemo项目的DataObjectDemo增加如下代码:
1 /// <summary>
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 }
流程主控代码中增加如下代码:
编译运行,输出结果:
有关本例子所涉及的数据表结构请参考基于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
本文重点
既然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中增加如下代码:1 /// <summary> 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增加如下代码:
1 /// <summary>
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
相关文章推荐
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-复杂业务的实现(商品入库)-附案例操作视
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-复杂业务的实现(商品入库)-附案例操作视频
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示使用报表构建UI-入库业务查询模块
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇阶段总结与WinForm篇展望
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示使用报表构建UI-入库业务查询模块
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示ORM对象与DataGridView的绑定技术-商品字典的另一个实现
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-入库业务结尾工作-演示单据的打印
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-类库介绍
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的批量删除与更新
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA应用中使用IOC解偶数据连接环境
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-ORM访问器及其配置
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用