Juvy

I Believe Persistence.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

       自从上一次写关于ORM的文章已经是几个月前的事情了,在这里先贴一下文章的地址,如果大家感兴趣的话可以去看看。

1)、支持差异数据保存的数据库实体类设计——处女作

2)、支持差异数据保存的数据库实体类设计(二)(续)

3)、支持差异数据保存的数据库实体类设计(三)(续)

4)、SAS框架问世(本文)

       一直在埋头完善框架,博文自然就写得少了,今天来展示一下自己的框架的用法,先说说本框架的有哪些优点:

1)、支持多数据库的ORM。不仅仅只是一套支持多种数据库的ORM,而是可以在同一个应用程序中连接到多个不同的数据库(数据库类别,或者数据库连接字符串的不同)

2)、实体类工具生成

3)、IOC依赖注入

4)、AOP面向方面编程

5)、日志功能

6)、数据库对象审计跟踪功能(包括数据库的历史修改版本查看,数据恢复等功能)

7、权限管理(包括功能模块权限、角色权限、数据组权限等)

8、其他...

       本文主要讲讲ORM的常见用法,首先需要实例化一个数据层代理对象,该对象是一个全局对象,代码如下:      

DalAgent dalAgent= new DalAgent();//实例化一个数据层代理类

IDbHelperFactory dbFalctory = new MSSqlDbHelperFactory("Server=.\SQLEXPRESS;DataBase=SAS;uid=sa;pwd=123456");//实例化数据库帮助类工厂类

dalAgent.GetDbHelperHandler = dbFactory.CreateDbHelper() ;//为数据层代理类设置获取数据库帮助类委托 

注:其中IDbHelperFactory对象的实例可以通过框架中的IOC容器获取。

 

 

       1、查询操作

             List<Entity> list = dalAgent.GetListAll<Entity>(tableName);//根据表名获取全部对象的列表数据;

             List<Entity> list = dalAgent.GetListObject<Entity>(tableName, "Id > 10 and ...");//根据表名、过滤条件,获取对象列表数据; 

             List<Entity> list = dalAgent.GetListObject<T>(tableName, pageInfo, orderBy);//根据表名、分页对象、排序对象获取对象列表数据(分页功能)

             List<Entity> list = dalAgent.GetListObject<T>(tableName, "Id > 10 and ...", pageInfo, orderBy);//根据表名、过滤条件、分页对象、排序对象获取对象列表数据(分页功能)

             List<Entity> list = dalAgent.GetListObject<Entity>(queryStr, listPara);//根据查询语句、参数列表获取全部对象列表数据;

             List<Entity> list = dalAgent.GetListObject<T>(queryStr, listPara, pageInfo, orderBy);//根据查询语句、参数列表、分页对象、排序对象获取对象列表数据(分页功能)

       2、查询单个对象 

             Entity e = dalAgent.GetObjectById<Entity>(tableName, id);//根据表名、Id获取对象; 

             Entity e = dalAgent.GetObject<Entity>(queryStr, listPara);//根据查询语句、参数列表获取全部对象;

       3、插入操作

            Entity e = new Entity();//实例化一个对象,假设该对象有三个属性Id, Name, Description

            e.Name = "Name";

            e.Description = "Description";

            dalAgent.Save(e);//框架自动生成Sql语句,支持自增Id和非自增Id 

       4、更新操作

            Entity e = dalAgent.GetObjectById<Entity>(tableName, 1);

            e.Name = "Name1";

            dalAgent.Save(e);//框架自动生成Sql语句,并且sql语句中只包含更新过的字段  

       5、删除操作

            Entity e = dalAgent.GetObjectById<Entity>(tableName, 1);

            dalAgent.Delete(e);

上面的功能只是本框架这种ORM模块的调用,其他功能在这里就不一一介绍了,留待后续文章补全。

 

 

 ASP.NET开发技术交流群: 67511751

posted on 2011-12-27 17:06  Juvy  阅读(2433)  评论(13编辑  收藏  举报
QQ:1054930154; Email:david.telvent@gmail.com; QQ群:67511751