.NET进阶——ORM基础认识

  ORM对象关系映射,对象即实体,关系即关系数据库表。ORM即实现从实体对象关系数据库数据的映射。

本质上就是将数据从一种形式转换到还有一种形式。它详细又有哪些表现呢。咱们一步步学习,一步步分析。

 

ORM攻克了什么问题?

  

  想想曾经使用的三层开发,在D层对数据库的操作基本能够归纳为下面几点问题:

1、使用DataSet/DataTable填充返回数据。

  DataSet的结构就相当于一张表,使用DataSet ,需要取得某一数据时是必需要知道表结构的(列名或者列的序号)。这不仅违反了三层分层的思想,也不符合面向对象的特点,由于DataSet是一个仅仅知道存储行和列的对象,而且不能像实体那样获取属性,也不能像DataSet加入方法。可是DataSet并非一无用处。它也算是神级的存在吧。使用方便,适合业务简单,小型的开发。

2、将DataSet/DataTable转化成实体及实体集返回(反射及泛型)。

  攻克了面向对象的问题。但问题远不止如此。

3、反复的方法,除了sql语句和实体不同外。其它的都一样。

4、即使用了抽象工厂加反射,假设要更换数据库,还须要写一套其他数据库的D层。

 

  综上所述,DataSet非面向对象的特点。sql语句使业务逻辑(包含D)与数据库之间形成高耦合。使得代码复用性低,维护繁琐,更换数据库工作量大等等一些问题。

那有没有方法解决以上问题呢?——ORM



核心理念

  

  来看看ORM核心理念:

  1、简单:ORM以最主要的形式建模数据。比方ORM会将数据库的一张表映射成一个实体类。表的字段就是这个类的成员变量

  2、精确:ORM使全部的数据表都依照统一的标准精确地映射成实体类,使系统在代码层面保持准确统一

  3、易懂:ORM使数据库结构文档化。

数据库被ORM转换为了程序猿能够读懂的实体类,程序猿能够仅仅把注意力放在业务对象。

  4、易用:ORM的避免了不规范、冗余、风格不统一的SQL语句,能够避免非常多人为Bug,方便编码风格的统一和后期维护。

 

.NET中的ORM框架


NHibernateEntityFramework,这两种框架兴许博客在研究。他们也是对ORM的实现,而且包括了事务,缓存。延迟载入等等。

 

事实上对ORM很多其它的还是疑问:

 

1ORM不用自己写SQL语句,可是一些复杂的,特殊的sql查询呢?

2、实体和关系怎样映射在一起的?

3、Attribute特性

4LinqLambda表达式

 

小结

为什么用ORM已经说的非常明确了,对照曾经的开发以及维护的经历。ORM可以够给我们的优点非常多。ORM一步步深入研究中。

 

 

本文也是依据自己以往的开发经历和近期对ORM的研究总结的,新手入门,多多指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值