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