论文部分内容阅读
随着软件的复杂度和规模不断增长和扩大,业务数据量也在不断增长,各种商业系统对于数据库的依赖程度也越来越强。由于面向对象在前台应用软件的广泛应用,并且在持久化对象的存储机制中占主导地位的是关系数据库,所以需要一套完善的对象/关系映射机制将内存对象的数据持久化到关系数据库中,因此对象/关系映射已成为目前商业软件开发中重要的一部分。 面向对象的软件使用关系数据库作为其存储机制意味着数据在对象模型和关系模型间的转换。对象模型基于软件工程的一些原理,而关系数据模型则基于数学原理,两种模型理论基础的不同导致了它们之间的“阻抗不匹配”(Object-Relational impedance mismatch),使用关系数据库存储持久化对象时就需要进行“对象/关系映射”。对象/关系映射是指这样的一种操作:它试图将对象的状态映射到关系数据库的数据上,以便提供透明的持久性。 本文主要研究了以下几个方面: 对象/关系映射中的理论背景,介绍了对象模型和关系模型,以及两者映射时会遇到的问题。 类与数据库表的映射方法,对象之间关系的映射的具体策略,这是对象/关系映射的变换规则。 对象/关系映射的各种解决方案,技术,这是对象/关系映射的具体实现方法。主要的三类技术分别是:基于反射的,基于源码生成的,基于字节操纵的。 介绍了NHibernate,NHibernate是Hibernate的.NET平台上的版本。Hibernate是现阶段ORM产品中比较成功的一个。 提出了自己的一种映射方法,通过使用C#.NET中的属性(Attribute)来进行映射。 使用属性进行映射,相比较Hibernate中使用XML文件进行映射而言,使得映射更为方便,更加直观,不容易出错。本文试着给出了通过属性映射的部分实现。并且使用例子进行了测试。