长久以来,程序员和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序员一定要为了连接与访问数据库而去学习 SQL 指令,至少对于我而言,我觉得这是一个很不爽的事情。

因此在信息业中有很多人都在研究如何将程序设计模型和数据库集成在一起,对象关系对应 (Object-Relational Mapping) 的技术就是由此而生,像Hibernate或NHibernate都是这个技术下的产物,而微软官方一直没有推出类似的框架,依旧依靠ADO.NET这个传统的数据访问工具。

估计微软也听到了来自程序员的抱怨,于是从一个ObjectSpace(ObjectSpace最早在2005年?被提出,可以让应用程序可以用完全对象化的方法连接与访问数据库,其技术概念与NHibernate相当类似)的概念最后在2008年随.net framework 3.5 SP1发布了ADO.NET Entity Framework,一个附带有图形化设计器的面向实体数据库访问框架。
  
  Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),而数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。而在抽象化的结构之下,则是高度集成与对应结构的概念层、对应层和储存层,以及支持 Entity Framework 的数据提供者 (provider),让数据访问的工作得以顺利与完整的进行。ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层:
  
  (1) 概念层:负责向上的对象与属性显露与访问,让上层的应用程序码可以如面向对象的方式般访问数据。这部分由设计器自动生成,表现在一系列的类。
  
  (2) 对应层:将上方的概念层和底下的储存层的数据结构对应在一起,负责将上层的概念层结构以及下层的储存体结构中的成员结合在一起,以确认数据的来源与流向。这部分由描述语言实现,可以自由修改。
  
  (3) 储存层:依不同数据库与数据结构,而显露出实体的数据结构体,负责与数据库管理系统 (DBMS) 中的数据表做实体对应 (Physical Mapping),让数据可以输入正确的数据来源中,或者由正确的数据来源取出。

对于访问者(上层的逻辑)而言,可以使用三种方式访问EDM:Entity Client,Object Context 以及LINQ

1. Entity Client(数据库操作访问方式)

Entity Client是 ADO.NET Entity Framework 中的本地用户端 (Native Client),它的对象模型和 ADO.NET 的其他用户端非常相似,一样有 Connection, Command, DataReader 等对象,但最大的差异就是,它有自己的 SQL 指令 (Entity SQL),可以用 SQL 的方式访问 EDM,简单的说,就是把 EDM 当成一个实体数据库。

Entity Framework (EF)/Linq To entity/ ESQL(entity sql)区别 ADO.NET Entity Framework:来自微软官方的ORM框架相关推荐

  1. ADO.NET、ODP.NET、Linq to SQL、ADO.NET Entity 、NHibernate在Oracle下的性能比较

    下面我对Oracle数据库在.NET平台下的主要几种数据访问方式进行测试. 下面是测试表: CREATE TABLE CUSTOMERS ( "CUSTOMER_ID" NUMBE ...

  2. EF架构~了解一下,ADO.NET Entity Framework

    回到目录 以下文章部分来自百度百科 背景 长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去 学习 SQL ...

  3. ADO.NET Entity Framework 基本概述

    时间过得很快转眼间VS已经2010版了,在4月12日将会正式发布VS 2010 ADOEF 做为.Net 4.0 中被微软推荐的ORM框架,相比.Net 3.5 sp1 已经得到了进一步的增强,使用它 ...

  4. ORM框架 之 Entity Framework

    Entity Framework 1.ADO.NET Entity Framework是以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方案,早起被称为ObjectSpac ...

  5. EF 框架的简介、发展历史;ORM框架概念

    一.EF 框架简介 EF 全称是 EntityFramework .   Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. OR ...

  6. Entity Framework 与 LINQ to SQL

    Entity Framework和LINQ to SQL到底有什么区别?这是一个很常见的问题.下面的表中简要罗列了两种技术的主要区别. LINQ to SQL Entity Framework 复杂度 ...

  7. Entity Framework(EF的Code First方法)

    EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架.同其它ORM(如,NHibernate,Hibernate)一样, 一是为了使开 ...

  8. 什么是Entity Framework(EF)

    Entity Framework入门教程(1)---Entity Framework简介 阅读目录 什么是Entity Framework 1.EF的概念 2.EF功能汇总 3.EF组成 回到顶部 什 ...

  9. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

最新文章

  1. SDUT 母牛的故事
  2. 11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event...
  3. elk,logstash -elastcisearch 429
  4. vue 父刷新子_父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法...
  5. import 别名_es6模块 import, export 知识点小结
  6. watch 和 computed
  7. 对弈(nim-k游戏博弈)
  8. pat 乙级 1015 德才论(C++)
  9. Ubuntu Sublime Text 3 搜狗拼音
  10. python5000行代码项目_5000行python代码+可视化60W数据,告诉你知乎用户不为人知的事...
  11. Tapioca:linux上同gtalk语音通信
  12. sqlserver2005 openRowSet 和row_Number
  13. 寓情于景 —— 情与景的交融
  14. MEncoder的基础用法—6.3. 编码为双通道MPEG-4 (DivX)
  15. linux下libreoffice增加字体,自由办公说:LibreOffice添加中文标点扩展
  16. 全面赋能,OCR文字识别2022年多场景落地应用
  17. 攒机笔记二十:改造笔记本电脑(华硕A555L)
  18. Altium Designer 18 原理图编译出现off grid错误处理方法
  19. mysql 表 视图 索引吗_Mysql多表查询, 视图,事务,索引,函数,go连接数据库
  20. 公众号视频图片无缝连接

热门文章

  1. UITableViewCell自适应高度
  2. MYSQL存储过程中 表名 使用变量
  3. Oracle 12C DataGuard部署以及维护
  4. Oracle/Mysql查看锁表与解锁表
  5. ZooKeeper之Web管理工具Shepher介绍
  6. 解决ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost
  7. OSPF——多区域概念及配置、ABR简介、ASBR简介、路由重分发
  8. GPLT-天梯赛-题解目录
  9. 【Python爬虫】股票数据定向爬虫
  10. Let‘s Encrypt 免费Https证书