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

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模块的调用,其他功能在这里就不一一介绍了,留待后续文章补全。