一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作

系统回顾

          前面的四篇文章我详细的介绍了AgileEAS.NET平台中统一数据访问(UDA)组件的用法,分析了两种数据处理流程的优缺点,以及基于懒惰模式的委托执行,事务处理方法,基本涵盖了基于数据库支持的业务系统的技术点。

          从本文开始,我将带大家进入AgileEAS.NET平台的ORM组件应用案例之中,应用ORM实现与前面案例相同的功能,有关于AgileEAS.NET平台ORM组件的介绍请参考:AgileEAS.NET之数据关系映射ORMAgileEAS.NET之ORM访问器

开发流程

          一、AgileEAS. NET平台ORM应用开发的第一步是数据对象的设计,就是规划所涉及的ORM对象的定义,涉及的数据库,是否使用基于接口驱动的数据层等一系列的策略,在AgileEAS.NET平台中提供了数据对象设计器,本步骤的实质工作是使用对象设计器进行数据实体的定义:

          二、生成代码,本步骤是使用对象设计器生成当前设计好的模型的数据层代码,生成或者根据现在的对象模型定义文件生成相信的数据层代码:

          三、处理ORM访问器,AgileEAS.NET平台中的ORM是实现与操作相分离的,在程序中要使用ORM实体操纵数据库,就必须的配置好ORM访问器,使用ORM访问器.操作(实体)或者实体.ORM访问器/实体.操作()实现ORM操作。

          四、ORM操作,在配置好ORM访问器之后,就可以使用ORM访问器.操作(实体)或者实体.ORM访问器+实体.操作()的方法来完成ORM及数据库的操纵。

本文案例

          本文的Demo代码数据库结构基于一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-涉及的数据定义一文中的定义,在本案例中也就省去了设计实体对象模型的步骤,我们直接使用前文提供的demo.sdm文件生成代码,并且确定不生成数据接口层代码:

          本案例完成的业务功能是实现读取商品字典的所有数据,并且实例演示增加、读取、修、删除一个新的商品字典记录,项目结构如下:

          演示解决方案中ClassLibDemo.DAL.SQLServer是生成器生成的项目,ClassLib.OrmDemo是一个控件台项目,流程控制代码如下:

static void Main(string[] args)
    {
        System.Console.WriteLine("AgileEAS.NET平台ORM组件使用例子,按任意键开始...");
        System.Console.Read();
        System.Console.WriteLine("读取全表数据的例子:");
        new TableDemo().DemoQuery();

        System.Console.WriteLine("按任意键继续...");
        System.Console.Read();
        System.Console.WriteLine("演示数据查询(Query)的例子:");
        new DataObjectDemo().DemoQuery();

        System.Console.WriteLine("按任意键继续...");
        System.Console.Read();
        System.Console.WriteLine("演示数据插入(Insert)的例子:");
        new DataObjectDemo().DemoInsert();
        new DataObjectDemo().DemoQuery();

        System.Console.WriteLine("按任意键继续...");
        System.Console.Read();
        System.Console.WriteLine("演示数据修改(Update)的例子:");
        new DataObjectDemo().DemoUpdate();
        new DataObjectDemo().DemoQuery();

        System.Console.WriteLine("按任意键继续...");
        System.Console.Read();
        System.Console.WriteLine("演示数据删除(Delete)的例子:");
        new DataObjectDemo().DemoDelete();
        new DataObjectDemo().DemoQuery();

        System.Console.WriteLine("按任意键结束。");
        System.Console.Read();
    }

               程序的运行结果如下:

          有关本例子所涉及的数据表结构请参考基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义一文,有关数据对象模型定义文件、文档、DDL脚本请下载:http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本文代码下载:ORM.Demo1.rar

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

页面状态保持机制(编辑中)

Web应用程序中,有很多状态需要在页面的反复回调中能够保持住,还有一些状态需要在页面之间保持。对于状态的保持,是一个值得研究的问题。状态处理不当是页面失效或错误...

2645
来自专栏.NET技术

.net core实践系列之SSO-同域实现

SSO的系列还是以.Net Core作为实践例子与大家分享,SSO在Web方面复杂度分同域与跨域。本篇先分享同域的设计与实现,跨域将在下篇与大家分享。

3402
来自专栏程序员的SOD蜜

使用微服务架构思想,设计部署OAuth2.0授权认证框架

2.8K3
来自专栏更流畅、简洁的软件开发方式

【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)

适用场景   先说一下伪URL分页的适用场景。在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可。但是如果查...

2376
来自专栏我的博客

安卓上传文件(绝对可以用)

说明:使用是httpclient+MultipartEntity,因此需要导入包:httpmime-4.1.1(这个包非常重要!务必导入!) 写在前面:我只是贴...

3765
来自专栏微服务

RabbitMQ入门HelloWorld(C#)(翻译)

介绍 先决条件 本教程假定RabbitMQ已安装并在标准端口(5672)上的本地主机上运行。如果您使用不同的主机,端口或凭据,连接设置将需要调整。 在哪里得到帮...

2759
来自专栏智能合约

node.js实现CURL功能

2002
来自专栏.NET开发那点事

使用Microsoft Fakes进行单元测试(1)

一:什么是单元测试 单元测试是对软件进行准确性验证的步骤。单元测试并不进行整个软件功能的测试,仅仅是对于最小工作单元的测试。一般最小工作单元就是指方法/函数等...

2276
来自专栏分布式系统和大数据处理

HttpModule介绍

Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了...

713
来自专栏码农阿宇

.Net Core从命令行读取配置文件

最近在学习博客园腾飞(jesse)的.Net Core视频教程,收益匪浅,在此作推荐 : http://video.jessetalk.cn/ 言归正传,.Ne...

3004

扫码关注云+社区