ORM框架之EntityFramework介绍

1. 简介

大家好!我是高堂。
作为一位伪前端程序猿,我给大家介绍一下微软的自家的 ORM框架
ADO.NET Entity Framework 以下简称 EF框架

2. 什么是 ORM框架?

ORM => 对象关系映射(英语:Object Relational Mapping)
ORM框架 用途 => 为了解决 软件工程数据库 打交道的中间层。

为什么需要 ORM框架 呢?
因为软件工程 是面向对象为基本原则; 而 数据库 则是从数据理论发展而来的;两套理论存在明显的的差异。

ORM框架 到底是什么呢? 我还是不太清楚!!!
ORM 其实有三大核心原则:

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

简单的说 ORM 相关于中继数据。具体到产品上,例如 ADO.NET Entity Framework 实体类的属性,就算是一种中继数据。在后面我会给大家详细介绍 EF框架

3. 世面上有哪一些 ORM 产品呢?

  • NHibernate框架 来源于 Java 的 Hibernate 框架,采用XML文件配置的方式。
  • Castle ActiveRecord 框架 是 Castle 中的一个子项目,底层封装了 NHibernate,改用 Attribute 来代替配置文件,这样就不用像 NHibernate 那样配置复杂的文件了。
  • iBATIS.NET 框架 分为 DataMapper 和DataAccess两部分,DataMapper是这个框架的核心, DataMapper使用XML文件实现从实体到 SQL statements 的映射,学习起来非常简单,使用DataMapper 以后,我们可以自由的使用 SQL 语句或存储过程; DataMapper 允许我们通过一个简单的接口来操作数据,而不必了解底层实现的细节。
  • ADO.NET Entity Framework框架 是NET开发人员的福音,微软的东西,简单,容易上手等特点。和 Visual Studio SQLServer等软件无缝集成,作为一位 NET 阵营的 童鞋们,你们懂的!

4. EF框架 的介绍

EF框架 简介:
以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。

EF框架 优缺点:

  • 非SQL Server数据库且无该数据库的DataProvider;
  • 高性能要求。在进行一些复杂查询的情况下,EF的性能表现不太好,而开发人员又无法控制SQL语句的生成;
  • 高安全性要求。有时候DB用户仅仅具有EXEC的权限,而EF自动生成的类又不好用,还是需要自己来写。

EF框架 发展历史:

版本 支持.NET 发布情况 备注
EntityFramework 3.5 2.0+ 包含于.NET 3.5中 支持EDMX生成,通过扩展可支持POCO类的生成
Entity Framework 4.0 4.0+ 包含于.NET 4.0中
Entity Framework 4.X 可通过NuGet获取 支持Database First、Model First、Code First三种生成模式
Entity Framework 4.5 4.5+ 集成于.NET 4.5中
Entity Framework 5.X 4.5+ 可通过NuGet获取 支持枚举字段,性能有较大提升,支持.NET 4.0的版本 为Entity Framework 4.4
EnittyFramework 6.X 4.0+ 可通过NuGet获取
EnittyFramework 7.X 4.6+ 可通过NuGet获取 现在更名为 EntityFramework Core,结合Net Core使用,多用于跨平台

4. EF的开发模式

从4.1版本开始,EF开始支持三种开发模式

  • Database First模式

    我们称之为“数据库优先”,前提是你的应用已经有相应的数据库,你可以使用EF设计工具根据数据库生成数据数据类,你可以使用Visual Studio模型设计器修改这些模型之间对应关系。

  • Model First模式

    我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio中我们通过设计对于的数据模型来生成数据库和数据类。

  • Code First模式

    我们称之为“代码优先”模式,是从EF4.1开始新建加入的功能。使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的实现过程),然后自动生成数据库。这样设计的好处在于我们可以针对概念模型进行所有数据操作而不必关系数据的存储关系,使我们可以更加自然的采用面向对象的方式进行面向数据的应用程序开发。

5. 结束语

ORM框架之EntityFramework介绍的更多相关文章

  1. 轻量级ORM框架 QX_Frame.Bantina(二、框架使用方式介绍)

    轻量级ORM框架QX_Frame.Bantina系列讲解(开源) 一.框架简介 http://www.cnblogs.com/qixiaoyizhan/p/7417467.html 二.框架使用方式介 ...

  2. 【EF 4】ORM框架及其流行产品之一EF介绍

    导读:跳进了多租户切换数据库的坑,那么就继续走下去吧.在我们的项目中,是运用EF实现对数据库的操作,那么EF其实是.NET系统中,基于ORM框架的一个产品实现.在java那边,则有Hibernate和 ...

  3. 1.ORM介绍,基本配置及通过ORM框架创建表

    1.介绍 ORM全拼Object-Relation Mapping(对象-关系映射) 作用:主要实现模型对象到关系数据库数据的映射 通过ORM框架作为一个中间者或者是一个桥梁,开发者通过定义模型类,属 ...

  4. 手写开源ORM框架介绍

    手写开源ORM框架介绍 简介 前段时间利用空闲时间,参照mybatis的基本思路手写了一个ORM框架.一直没有时间去补充相应的文档,现在正好抽时间去整理下.通过思路历程和代码注释,一方面重温下知识,另 ...

  5. 轻量级的.Net ORM框架介绍

    轻量型 ORM 组件 FluentData 官网https://fluentdata.codeplex.com/ http://www.cnblogs.com/babietongtianta/p/43 ...

  6. mango(mango ORM框架介绍)

    官网地址:http://www.jfaster.org/ mango的中文名是"芒果",它是一个极速分布式ORM框架.目前已有十多个大型线上项目在使用mango,在某一支付系统中, ...

  7. ORM框架介绍——什么是ORM框架?

    1.什么是ORM?对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.ORM框架是连接数据库的桥梁,只要提供 ...

  8. 自制简单的.Net ORM框架 (一) 简介

    在自己研究ORM之前,也使用过几个成熟的ORM方案,例如:EntityFramework,PetaPoco,Dapper 等,用是很好用,但是对自己来说总是不那么方便,EF比较笨重,Dapper要自定 ...

  9. ORM框架是什么

    ORM框架是什么 对象关系映射,目前数据库是关系型数据库  ORM 主要是把数据库中的关系数据映射称为程序中的对象 目前集中常见的ORM框架1  Nhibernate原因:用的比较多,资料也比较好找. ...

随机推荐

  1. 感知机算法及BP神经网络

    简介:感知机在1957年就已经提出,可以说是最为古老的分类方法之一了.是很多算法的鼻祖,比如说BP神经网络.虽然在今天看来它的分类模型在很多数时候泛化能力不强,但是它的原理却值得好好研究.先学好感知机 ...

  2. 一个U盘制作多个系统

    写在前面:一个U盘可以装多个ghost系统,但不能装多个原版ISO系统. 一.一个U盘装多个ghost系统 下载老毛桃或电脑店U盘制作工具,点击一键制作U盘启动盘.然后将gho文件拷贝复制到U盘的GH ...

  3. MongoDB(mongodb-win32-x86_64-enterprise-windows-64-4.2.1-signed.msi)下载,启动和插入数据,查询

    下载链接:https://pan.baidu.com/s/19lM5Q-_BaDbjaO1Pj0SbYg&shfl=sharepset 安装一路Next就行,安装完毕后,进入目录C:\Prog ...

  4. Ubuntu 18.04系统下arm-linux-gcc交叉编译器安装

    Ubuntu 18.04系统: arm-linux-gcc 4.4.3版本. 安装arm-linux-gcc将压缩包arm-linux-gcc.tar.gz解压到arm-linux-gcc文件夹tar ...

  5. SQL-W3School-高级:SQL ALTER TABLE 语句

    ylbtech-SQL-W3School-高级:SQL ALTER TABLE 语句 1.返回顶部 1. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. ...

  6. powershell命令教程

    启动 powershell #字符串操作 对象操作 "hello".Length #进程操作 PS C:\> notepad PS C:\> $process=get- ...

  7. [C++]哈夫曼树(最优满二叉树) / 哈夫曼编码(贪心算法)

    一 哈夫曼树 1.1 基本概念 算法思想 贪心算法(以局部最优,谋求全局最优) 适用范围 1 [(约束)可行]:它必须满足问题的约束 2 [局部最优]它是当前步骤中所有可行选择中最佳的局部选择 3 [ ...

  8. Jenkins创建镜像后无法推送到harbor的问题

    https://blog.csdn.net/mydeman/article/details/79042848 1.先切换到root账号,用root登录harbor,就可以push $ sudo pas ...

  9. Spring Aop(七)——基于XML配置的Spring Aop

    转发:https://www.iteye.com/blog/elim-2396043 7 基于XML配置的Spring AOP 基于XML配置的Spring AOP需要引入AOP配置的Schema,然 ...

  10. GCE 部署 ELK 7.1可视化分析 nginx

    目录 一.准备 1.1.服务器环境准备 二.安装 ES 2.1.遇到小问题 三.安装 Kibana 四.安装 Logstash 一.准备 我这边有一个网站放在了 Google VM 上面,所以打算在购 ...