zoukankan      html  css  js  c++  java
  • .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的研究总结的,新手入门,多多指正!

  • 相关阅读:
    如何寻找第二大轮廓
    基础_模型迁移_CBIR_augmentation
    基础_模型迁移_CBIR_augmentation
    MQ通道配置
    WebSphere MQ 入门指南
    P2P小贷网站业务数据流程分享
    发博客后自动同步摘要到新浪微博
    Linux Shell脚本攻略 读书笔记
    Linux Shell 文本处理工具集锦
    Berkeley 四种产品如何选择?
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6933279.html
Copyright © 2011-2022 走看看