基于.net的ORM常用框架说明

一、ORM概述

ORM 对象关系映射(Object-Relational Mapping),也就是对象与数据库建立映射关系,核心原则就是简单(以最基本的形式建模数据)、传达性(数据库结果被任何人都能理解的语言文档化),精确性(基于数据模型创建标准化结构),通过反射找到属性的特性,通过过滤选出我们需要的属性(使用Attribute对字段进行标识),通过获取属性的值,区分不同数据类型,需要在sql中添加 单引号,将属性名称和属性值拼接到sql中实现数据库访问。

是以对象为起点,使用对象构造出Linq表达式,这样我们就可以通过对象的描述来实现对数据库的操作,Linq的的最终实现方式也是Lambda表达式,ORM框架都会记录对象类型到数据库对象的元数据,利用元数据可以将复杂的Lambda翻译成通用的中间表达式,这个表达式实际上是抽象与不同数据库的具体实现,中间表达式按照指定数据库的具体实现生成指定的sql语句,交给ado.net来处理数据库,如果数据库存在返回则会会写到公共语言运行库(CLR)中。

二、常用的三种ORM框架

1、SqlSugar 

 可以运行在.net 4.0+和&.net Core的高性能、轻量级的ORM框架,完全开源免费,之处主流数据库,目前来说维护比较及时。

sqlsugar据说性能优于EF数倍。

sqlsugar部分查询特性:

(1)条件查询:表达式查询、动态查询、sql查询。

(2)返回类型:Dynmaic、json、class,DataTable,List

(3)表连接:Table Join,Queryable Join

(4)缓存:Redis、Other

(5)映射:通过.Mapper进行一对一,一对多,多对多的映射。

(6)查询函数:SqlFunc

2、Dos.ORM

3、NHibernate 

是一个支持多个数据库的Orm框架,然而几乎每个数据库产品都对Sql的实现都有所不同,通过创建实体,编写映射关系,通过NHibernate 提供的数据相关操作实现,效率相对较低,配置比较麻烦。

(1)配置NHibernate ,主要是数据库驱动、连接什么的

(2)创建**.hbm.xml映射文件,主要配置表和字段信息

(3)创建数据库和表,手动创建时和映射文件对应起来;通过SchemaExport生成的sql创建。

(4)CURD操作,所有数据库操作都是通过ISession对象操作,而ISession可以通过ISessionFactory创建

(5)调用操作类就行

4、EF

EF 框架是微软的.NET中ORM(对象关系映射)框架。

EF架构组件主要包括EDM(实体数据模型)、MappingLINQ to Entities

EDM(实体数据模型): EDM由三个主要部分组成 - 概念模型,映射和存储模型。

Mapping:映射由有关概念模型如何映射到存储模型的信息组成。 
LINQ to Entities: LINQ to Entities是一种用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技能。

操作过程:建立实体,将实体映射到数据库模式,将Linq查询翻译并执行到sql,根据实体的生命周期内发生的变化,将更改保存的数据库。

你可能感兴趣的:(C#,SQL)