C#根据反射实现ORM映射
来源:互联网 发布:js 保存图片到手机 编辑:程序博客网 时间:2024/05/17 23:24
转载自:C#根据反射实现ORM映射
(一)关于反射
什么是反射?
反射就是在运行时,动态获取对象信息的方法。比如:运行时获得对象有哪些属性,方法,委托等。
反射的作用?
能够实现运行时,动态调用对象的方法,以及动态设置、获取属性值等。
反射的示例:
(二)关于特性
什么是 Attribute?
它是对运行时的对象或对象的属性、方法、委托等进行描述的类。
Attribute 的作用?
用于在运行时,描述你的代码或者影响你的程序的行为。
注意:
既然Attribute 是类,那么它的定义与定义类一样。
唯一不同的就是,自定义Attribute 类必须继承于System.Attribute 空间。
特性的示例:
通过自定义Attribute,我们定义了类属性和数据库字段的一一对应关系,于是对MyStudent 类的Name、Age 属性都加上Attribute 的描述,指定他们对应的数据库字段名以及类型。
代码更改如下:
(三)ORM 映射规则的定义
给实体类增加DataFieldAttribute 的描述,其实就是增加了O(对象)/ R(关系数据库)的映射规则。
下面我们就通过反射的方法实现:在运行时动态获取O/R Mapping 的映射规则:
显示结果:
实体类的属性名:Name -> 数据库字段名:SName
实体类的属性名:Age -> 数据库字段名:SAge
接下来的工作就是:怎样根据这种方法动态地从对象中获取映射规则,然后动态构造Insert、Update、Delete 等 SQL 语句。这就是实现自己的ORM 的原理。
这里的代码仅仅是举例,而要真正实现一个ORM,我们还需要考虑的很多,比如:
1、实体类对应于哪张数据库表?
2、数据库表中的 PK 和 FK(如果有的话)怎么表示?
……
Demo 下载
学习来源:
C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
Attribute(特性),怎么用才更好?
- C#根据反射实现ORM映射
- C#制作ORM映射学习笔记三 ORM映射实现
- 使用表达式树+反射实现简易ORM对象映射操作
- C#基础系列:实现自己的ORM(反射以及Attribute在ORM中的应用)
- JDBC 实现简单ORM映射
- c#根据配置文件反射
- 反射实现Android Sqlite Orm
- C#实现简单ORM
- c# 反射在ORM中的应用
- Java反射机制应用:对象关系映射(ORM)
- Java反射机制应用:对象关系映射(ORM)
- 反射在ORM(对象关系映射)中的应用
- c#反射/映射 学习摘录
- c#反射/映射 学习摘录
- C++实现的ORM映射工具
- C++实现的ORM映射工具
- 基于Java反射实现简易ORM
- dbutils和反射实现ORM问题整理
- HttpClient 4.3详细教程之高级主题
- 清除浮动的三种方法
- 矩阵的行列式、秩的意义
- oracle TNSPING1521速度慢 数据库登录速度慢的解决办法
- PAT (Advanced Level) Practise 1067 Sort with Swap(0,*) (25)
- C#根据反射实现ORM映射
- 学习Java 泛型 Type体系
- 关于Charlers 解析https 乱码的解决方法
- 正则表达式大全
- QT各事件获取
- viewpager和侧滑栏冲突处理
- WINSCP的学习使用
- 从顺序表中返回最小值元素
- 解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.