一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务

简介:

     前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们必须景借助于SQL语句。

本文重点

          既然ORM解决不了所有的问题,我们得借助于SQL语句,也就是我们可以理解为在DAL层,在ORM对象中,还得支持SQL的操作:

[3A0DOVP)2C9[UV9(~OB6$S

          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();

          编译运行,输出结果:

image           有关本例子所涉及的数据表结构请参考基于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


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。



    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2010/10/05/1842927.html,如需转载请自行联系原作者

相关文章
|
11月前
|
人工智能 架构师 大数据
广西广电X阿里云:共同成立全媒体AI实验室!
广西广电X阿里云:共同成立全媒体AI实验室!
293 5
|
机器学习/深度学习 数据挖掘 开发工具
Jupyter 集群管理:大规模部署的最佳策略
【8月更文第29天】将版本控制系统(如 Git)与 Jupyter 笔记本结合使用是现代数据科学和机器学习团队中常见的实践。这种集成不仅有助于追踪代码变更历史,还可以促进团队间的协作和代码共享。本文将详细介绍如何在 Jupyter Notebook 中集成 Git,并提供一些实用的代码示例来帮助你开始使用。
316 1
|
存储 监控 Linux
在Linux中,什么是 inode ?
在Linux中,什么是 inode ?
使用Java创建虚拟机并管理libvirt
使用Java创建虚拟机并管理libvirt
208 2
|
消息中间件 运维 关系型数据库
超低运维成本,构建自有高性能商业充电运营平台
奥升新能源技术服务平台,致力于高性能高费效比技术框架研发与实施,致力于为客户提供性价比最优的技术解决方案和运维服务。
|
存储 Java 网络安全
ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
【4月更文挑战第8天】ZooKeeper【搭建 02】apache-zookeeper-3.6.0 集群版(准备+安装配置+启动验证)
240 1
|
存储 编译器 C语言
C语言程序设计——字符输出函数putchar()
C语言程序设计——字符输出函数putchar()
|
JSON NoSQL Java
深入浅出Redis(十三):SpringBoot整合Redis客户端
深入浅出Redis(十三):SpringBoot整合Redis客户端
|
Java fastjson 应用服务中间件
java 代码混淆 proguard exception
  错误信息 [DEBUG] (f) classpathElements = [D:\cache\git-repos\showandshare\showandshare\showandshare.
2151 0
|
弹性计算
阿里云服务器续费流程详解(可领代金券)
阿里云服务器续费流程和续费优惠券领取(图文教程)
500 0
阿里云服务器续费流程详解(可领代金券)