天天看点

.NET实现之(简易ORM)

ORM模型在现在的项目开发中用的还是比较多的,他的好坏我们就不讨论了,已学习为主吧;

1:

.NET实现之(简易ORM)

这是我测试数据库中的一张tb_user表,其中id是自动增长主键,下面我们就用这张表来讲解我是怎么通过ORM来实现对这张表的增、删、该、查的;

2:

.NET实现之(简易ORM)

这是我项目中的与上图对应的MODEL,我用两个特性标记出MODEL中与表对应的信息,表名、列的主键、是否自增长;用这些特性的目的就是在ORM模型的核心部分拼接SQL代码时,在做删除、更新时知道那一列是对应数据库中的主键,在做增加时我要知道那些列是自增长的等等;

3:

.NET实现之(简易ORM)

这是我的项目中的具体类型信息,本人已上传全部源码,为了便于大家学习我就简单的介绍一下这些类型具体是什么意思;

4:

.NET实现之(简易ORM)

5:

.NET实现之(简易ORM)

ORMHelper.cs里面只有一个字段和一个只读属性,作用就是用来保存Model首次使用时,保存当前Model中的所有的主键信息;以便下次使用时我好方便的读取;6:

.NET实现之(简易ORM)

这是本人测试的例子,1.统一数据源封装实现,我们通过IDataSourceTypeFactory工厂获取当前上下问的数据源访问对象,其实我们上面也讲了,IDataSourceType是对数据源访问的封装实现(如:SqlConnection、SqlCommand、SqlParameter)已一个简单的对象呈现使用;

2.通过ORMHelper实现用MODEL插入数据,插入方法是一个泛型方法,大概的实现思路是这样的,我们通过反射读取传进来的Model实例中的各个特性信息,如表名称、列主键等;然后拼接SQL语句,执行,其实增、删、改、查都是同一个道理,在具体的拼接SQL的过程可能稍有不同;本人贴出ORMHelper.cs全部源码,以供大家学习使用;

由于代码编写时的目的是供学习使用,所以在代码上可能存在不足,只要能说明问题就行了;