zoukankan      html  css  js  c++  java
  • 常见ORM介绍

    一、概述

       DotNet领域的ORM框架,我们想到的有EF、NHibernate、Dapper、FluentData、SQLSugar等等

        1、什么是ORM?

        ORM(Object Relational Mapping),即对象关系映射,它是面向对象思想的进一步的发扬光大,主要实现【程序对象】到【关系型数据库】的映射,一般情况,实体与我们库中的表的对应关系,一个实体就好比一张表,将实体的操作视为对表的操作。通过ORM模型对我们的代码更加简洁,我们将对数据库的操作通过ORM转换后执行,ORM模型确实为我们的开发提高了效率。。在之前使用ADO.NET开发的时候,数据库访问层(即 DAL),要写很多增加、删除、保存的方法,很是麻烦,如果引入ORM框架,它自带CRUD的API(相当于DAL层已经给你写好了),可以自动生成SQL语句,所以作为开发者而言,只需要关注对象即可。

      2、 ORM的含义:

      • O:Domain Object  领域模型
      • R:Relational DataBase 关系型数据库
      • M : Mapping 映射关系

           3、ORM的三大核心原则:

      • 简单性:以最简单的模式建模数据。
      • 传达性:数据库结构被任何人都能理解的语言文档化。
      • 精确性:基于数据模型创建正确标准化的结构。 

      4、ORM优点

        使用ADO.NET访问数据库,我们将ADO.NET对数据库的操作封装在一个SQLHelper中,然后通过调用SQLHelper实现对数据库的操作。即使使用SQLHelper进行封装,我们的数据访问层(DAL),还是要针对不同的业务重复很多增、删、改、查操作,ORM就是为了解决这些问题。

      5、ORM缺点     

          复杂的程序ORM低于SQL语句,所以选择ORM还是手写SQL,要根据不同场景来判断。

    二、EF简单介绍

       EF是微软以来ADO.Net为基础开发出来的对象关系映射(ORM)解决方案,它解决了对象持久化问题,将程序员从编写麻烦的SQL语句中解放出来。

      1、概述

        EF包括三种模式:DBFirst、CodeFist、ModelFirst 。EF可以调用SQL语句、可以使用Linq查询、可以使用Lambda查询,EF还有很多高级属性,比如延迟加载、缓存属性等等 

       2、优点:

      • 支持多种数据库(Microsoft SQL Server、Oracle和DB2等),简单的改变配置文件,就可以切换数据库;
      • 强劲的映射引擎,能很好地支持存储过程;
      • EF是微软自家的产品,和VS的集成度很高,极大的提高了开发效率;
      • 能够与ASP.NET、WPF、WCF、WCF Data Services进行很好的集成。

      3、缺点

      • 在复杂的查询生成SQL脚本的效率不是很高,浪费了性能

      4、结构

      

      • EDM(Entity Data Model):这是微软提供的一个强大的可视化工具,用来生成 O、R、M的
      • 两种语法的查询:LINQ to Entities 和 Entity SQL
      • ObjectServices:Linq to Entities 和Entity Client Data Provider 之间起到转换作用
      • Entity Client Data Provider: 将Lambda转换成SQL语句
      • ADO.Net Data Provider: 标准的ADO.Net
      • DataBase:数据库

    三、NHibernate简单介绍

     

     三、Dapper简单介绍

        

        

  • 相关阅读:
    检测服务器是否开启重协商功能(用于CVE-2011-1473漏洞检测)
    Wireshark解密HTTPS流量的两种方法
    text2pcap: 将hex转储文本转换为Wireshark可打开的pcap文件
    Hibernate框架(五)Hibernate主键生成策略
    HIbernate框架(四)实现添加操作
    Hibernaete框架(三)搭建hibernate环境(重点)
    Hibernate框架(二)什么是orm思想(重点)
    Hibernate框架(一)Hibernate框架是什么?
    拦截器和过滤器的区别
    谈谈java中遍历Map的几种方法
  • 原文地址:https://www.cnblogs.com/qtiger/p/13277923.html
Copyright © 2011-2022 走看看