Entity Framework 4.1/4.3 之一 (概念篇)

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03



Entity Framework 4.1/4.3 之一 (概念篇)

前序:

大家好,我都想死你们了。因为我想写个Entity Framework 系列的文章,所以在之一这里我写了下前序,一方面讲一下我写系列文章的出发点,二方面讲一下写的思路。很长时间没有在博客园上发表文章了,多数时间在充当看客。有深度,有广度,有吸引度,有重点,这些都是我喜欢博客园的原因。

1、出发点:我用过 .Net Framework 3.5 中的Entity Framework(本文中我们称其为Entity Framework 3.5)。

当时用起来的感觉相当好,开发起来的效率提高了,开发人员关注点从数据库转移到了表对象(即Entity Framework 3.5 的数据实体,是对数据库表的对象映射),但不得不说,当时的Entity Framework 3.5还是初级产品,存在许多不足。这些不足很多在Entity Framework 4.1 中得到了改善。由于Entity Framework 很好的体现了ORM的思想,非常强大并且越来越灵活,所以我对Entity Framework 4.1 充满信心。这也是写本文的出发点。

补充:网上已经有很多这样的系列文章,我写这个系列的最重要的出发点也是做为一段学习的总结。

2、思路:系列文章中我会从概念入手,然后植入实例,并且会穿插Entity Framework 4.1 相对于 Entity Framework 3.5 的改进行和这些改进的优势。

正文:

提示:大家千万别纠结在这些充斥着大量英文单词及英语缩写的概念上,您先做个了解即可。在系列文章讲完后,这些该死的概念也就自然而然的理解了。

有时候概念看得抑郁的时候,大可说声 “Fuck” 释怀一下。

概念

1、Entity Framework: Entity Framework 的全称是 ADO.NET Entity Framework, 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。

ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。

(1)、Conceptual Schema:定义概念模型(.csdl)。

(2)、Mapping Schema:定义存储模型与概念模型之间的映射(.msl)。

(3)、Storage Schema:定义存储模型(又称逻辑模型)。

2、Code Frist

Code Frist 是代码先行的意思,什么是代码先行呢,这个思想在Entity Framework 4.1  中有很好的体现。即先编写业务程序,后生成数据库及各种数据表。不过我自己还是习惯于先建好数据库及数据表。然后在与Entity Framework 做映射。我个人觉得这种方式比较靠谱。

3、Poco

Poco是Entity Framework 4.0 中引入的,叫简单传统CLR对象(Plain Old CLR Oject/POCO)。这样做的好处是实体对象可以独立于Entity Framework 而存在。(这里可能大家不明白,没关系,千万别钻牛角尖,有个念相就是,后面你就会恍然大悟)。

这种独立可以让Entity Framework 更好的支持测试驱动开发和领域驱动开发。

其实POCO的思想是从Java中引入的,说句不好听的,C#中好多好的理念多是从Java中引入的,在此我表示中立。你愿意的话,可以查POJO

4LINQ to Entities

提供语言集成查询 (LINQ) 支持用于查询在概念模型中定义的实体类型。

 5、ObjectContext

网上关于ObjectContext的定义都比较字多,看起来想吐血。我来大话一下,ObjectContext是Entity Framework中非常重要的一个类库,我们就把它理解成类库,它提供了许许多多的方法,用来支持我们对Entity的操作。意思就是,微软给我们写了一个方法库,咱调用即可。

 6、DBContext

DBContext是在Entity Framework4.1中引入的,它与ObjectContext作用相似,有人问,那作用相似为什么要引入DBContext呢?是啊,我也想问这个问题,微软件给我的解释是DBContext是一个轻量级的,相对于ObjectContext而言DBContext更加的轻便实用而且灵活。具体这些优点的体现,我会在后续的文章中一一表现。

7、博客园中有这方面的介绍,网址是http://kb.cnblogs.com/zt/ef/ 非常不错,与大家分享

尾续:

这里没有写Entity Framework的优点,为什么呢,因为我想通过事实来说话,来证明它的优点和优势。用事实来说话,我不是今日说法,我是今日之说Entity Framework。

  

  好了,基础的概念介绍完毕,您先别急着记忆,我的意见是这篇您只做个理解,后续的文章中会让这些定义暧时间真相大白。

 

谢谢大家百忙之中抽时间观赏,发自肺腑的感谢。有写的不好的地方请大家不吝指较,小弟虚心接受。

百灵注:本文版权由百灵和博客园共同所有,转载请注明出处。
助人等于自助!  [email protected]

参考页面:http://qingqingquege.cnblogs.com/p/5933752.html

时间: 2024-10-09 21:53:20

Entity Framework 4.1/4.3 之一 (概念篇)的相关文章

Entity Framework 6 开发系列 目录

2014 年开始接触 Entity Framework 6 也快两年,用它已经沉淀了一个成熟架构,也用来开发了不少大大小小的产品和项目,直到这段时间,才真正有时间来回顾,重新学习它,为让大家更加了解Entity Framework 6,以及想把这两年中,开发过程中碰到的种种问题,跟大家分享,特此想做一个Entity Framework 6 开发系列的计划 第一篇:Entity Framework 简介 第二篇:Entity Framework CodeFirst & Model 映射 第三篇:E

Entity Framework Plus 系列目录

Entity Framework Plus 系列文章计划的已经全部写完,可能还有其他功能没有写到,希望大家能够多动手,尝试一下使用,一定会给您带来一些帮助的.文章全部写完,也应该出一个目录方便查看,目录如下 第一篇 Entity Framework Plus 之 Audit 第二篇 Entity Framework Plus 之 Query Future 第三篇 Entity Framework Plus 之 Query Cache 第四篇 Entity Framework Plus 之 Bat

Asp.Net MVC Entity Framework

Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Framework没有任何的了解.读完本篇教程,你将会理解如何使用Entity Framework来选择.插入.更新和删除数据库记录. Microsoft Entity Framework是一个对象关系映射(O

初次开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、目前性能还不够好

继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再

Entity Framework 学习

Entity Framework 学习初级篇1--EF基本概况... 2 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍... 7 Entity Framework 学习初级篇3-- LINQ TOEntities. 10 Entity Framework 学习初级篇4--EntitySQL. 17 Entity Framework 学习初级篇5--ObjectQ

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity Framework的背景信息,然后再详细学习如何搭建开发环境. 1.1 MVC和ASP.NET MVC 这本书涵盖Microsoft版本的MVC,即ASP.NET MVC.在写本书的时候,ASP.NET MVC的生产版本为MVC5,因此,本书的示例代码都使用ASP.NET MVC 5编写.在本书中

[Programming Entity Framework] 第3章 查询实体数据模型(EDM)(一)

http://www.cnblogs.com/sansi/archive/2012/10/18/2729337.html Programming Entity Framework 第二版翻译索引 你可以使用各种方法查询实体数据模型.你选择有些方法是因为个人喜好,而其它的则是因为你可以利用特殊的效益.你很有可能已经听过LINQ to Entities和Entity SQL.你可以使用特殊的方法去查询,比如某些基于LINQ,而其它的基于EF的ObjectQuery类.这此查询方法中的每一个都会产生具

Entity Framework with MySQL 学习笔记一(安装)

声明 :  数据库是Mysql,本人的程度只到会写sql语句(不会储蓄过程), c# 会基本的ADO.NET数据库访问,LINQ基础. 这篇只做个人学习|温习作用. 新手可以参考,也请高手指正错误, 感恩. Entity Framework (缩写EF) 是微软的一个框架.作用是处理面向对象与关系数据库的映射问题. 以往我们都是ADO.NET来访问数据库,connection.open() -> sql command ->  executenonquery | dataReader ->

Entity Framework 与 LINQ to SQL

Entity Framework和LINQ to SQL到底有什么区别?这是一个很常见的问题.下面的表中简要罗列了两种技术的主要区别. LINQ to SQL Entity Framework 复杂度 相对不复杂 相对比较复杂 模型 域模型(Domain model) 概念数据模型(Conceptual data model) 数据库服务器 SQL Server 多种数据库产品 开发时间 快速应用开发 需要较长时间,但支持更多特性 继承 困难 容易 文件类型 DBML文件 EDMX,CDSL,M