常见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简单介绍

    

    

原文地址:https://www.cnblogs.com/qtiger/p/13277923.html