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

16 篇文章 0 订阅

一、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,根据实体的生命周期内发生的变化,将更改保存的数据库。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】是一款专门为VB/C#.Net数据库程序员开发量身定做的(ORM框架)代码生成工具,所生成的代码基于面向对象、分层架构、ORM,使用改进的抽象工厂设计模式及反射机制等。目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库。从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否生成对应的数据库操作等,操作简单实用。同时通过实体可快速实现数据库表的增删改查等操作,另外,所生成的操作数据库的代码,只需按生成的配置文件说明修改数据库连接,即可用于各种类型数据库的访问操作等,对应文件会自动解析,即一次生成可用于各种类型的数据库的操作;且当表字段发生重大变化时再生成一次即可。所有数据库的操作默认以实体对应表的主键(可以是联合主键)为准,当然也可指定条件。增加和更新合并为一个保存操作,由实体自己判断是增加还是更新,若你愿意也可以分开来做,实体也提供了对应的快捷方式等。更多的好处在你用过之后才会发现。工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助. 最新版也可参见 http://download.csdn.net/source/3246612 http://www.skycn.com/soft/53715.html http://download.enet.com.cn/html/030212009031901.html http://qun.qq.com/air/#60873348/share http://blog.csdn.net/chutao/archive/2009/08/31/4504485.aspx

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值