《EntityFramework6Recipes》翻译系列(1)—–第一章开始使用实体框架之历史和框架简述「建议收藏」腾讯云开发者社区

在编码方面,我们现在使用面向对象和领域模型,架构、设计和编码都对应于现实世界中的事情,比如客户和订单。我们在白板上写出问题域(problemspace)中的名词,通过绘制它们之间的连线来表示关联和交互。并以此作为规范和给开发团队分配工作的依据。总之,架构、设计、和编码是基于概念层,已经和关系型数据库的组织和逻辑有很大的差别。

软件开发中分析和解决问题的方法已经进化成熟,然而关系型数据库却没有。很多年来,数据依然是保持在表、行、列这样模式里。不幸的是,它在面向对象继承和高度标准化的关系型数据库中产生了一个失配(阻抗失配,微软的安德斯.海尔斯伯格可能会这样叫它)。

为了应对这一差距,项目中经常引入“数据库层(databaselayer)”来转换应用程序领域实体类中数据到表中的行和列进行保存。由此产生了许多商业和开发的数据库访问框架。他们都希望在进化式的开发和结构化数据中架起一座桥。有趣的是,一个新的解决方案-对象关系映射(ORM)产生了。

实体框架,以及集成查询语言(LINQ)框架,他们均出自微软,使我们能处理抗阻失配问题。使用实体框架,我们能在设计器或是代码中直接对领域实体类进行建模。还能建立实体类之间的关系。面对这些实体类以及他们之间的关系我们构建LINQ查询来应对,LINQ允许我们在代码中使用实体类以及他们之间的关系来表达关系型数据库中的概念。这些在帮助我们减少开发工作量的同时,还有助于简化我们的开发体验。相对大量、高度冗余代码的ADO.NET数据访问方式,我们使用LINQ查询来表达我们对数据的需求。使用面向实体对象编程方式代替面向高度结构化的关系型数据库开发方式,实体框架会帮你实现实体类到底层数据库的映射。

注意:我们使用的术语实体类或实体对象,是一个代表应用程序中领域项的一个类。领域类代表现实世界中的对象,例如,你的项目中表示员工,部门,经理的类。应用程序的最终用户能够在应用程序中看到领域类并说,“是的,这就是我们业务所做的”。实体类定义概要或者属性,没有行为,本质上,实体类暴露对象的状态。

实体框架是微软提供的实现应用程序访问数据的战略解决方案,不同以往的技术。实体框架与VisualStudio一起提供一个综合的,基于模型的生态系统,它能让你开发广泛的面向数据的应用程序,包含桌面应用,互联网应用,云应用,以及基于服务的应用。本书将覆盖绝大多数主题。

历史

实体框架不是一个新事物,它可追溯到VisualStudio2008,在功能和特性上它经历一段漫长历程。如图1-1:

图1-1实体框架的简短历史

实体框架的第一个版本,提供了有限的功能,它只提供了ORM最基本的特性,只实现了一种叫做“数据库优先(DatabaseFirst)的方案,本书将对此方案进行充分展示。版本4.0带来一种叫做“模型优先(ModelFirst)“的方案,对简单公共语言运行时对象(PlainOldCLRObject(POCO))的完整支持,以及默认的数据延迟加载行为。不久之后,实体框架的开发团队发布了三个小的版本-4.1到4.3,提供了另一种叫做“代码优先(CodeFirst)”的方案。如上图所示,版本5.0随.NETFramework4.5和VisualStudio2012一起发布。提供了重大的性能改进,并支持了枚举类型,表值函数,空间数据类型,存储过程的一系列改进,以及对asp.netMVC框架的深度支持。

现在实体框架已经到了版本6.0,提供了查询和更新的异步支持,在代码优先(CodeFirst)中,存储过程支持更新,性能改进,以及一系列的新特性,本书将聚焦这些新特性。

注意:实体框架版本5.0同样也能在VisualStudio2010中使用,版本6.0随VisualStudio2013一起发布,已提供对VisualStudio2012和VisualStudio2010运行时支持。

对于分层集(levelset),我们简短地查看一下实体框架系统的关键组件。但绝不意味着是一个综合的描述,它将用几百页的篇幅。我们通过查看一些关键点帮助你了解本书的核心。

模型

实体框架创建的模型是一个名叫实体数据模型(EDM)的模型,它允许你在编码时使用强类型的实体类,不是关系型数据库中的结构和对象。(图1-2展示了在概念层的模型),实体数据模型允许你自定义实体类和关系型数据库表之间的映射,不仅仅是经典的一对一或类到表的映射。

图1-2实体数据模型

在图1-2中,展示了左边的数据库表不直接映射到右边的实体类型(代码中使用)的。实体数据模型中的映射能力使开发者可以使用与问题域(problemdomain)高度一至的实体类型集,替代高度结构化的数据库。以设计出高性能、可伸缩、可维护的代码。

当然,你能看到上图中的Location表,你能很容易的将它映射到单一的实体类,也这是实体框架的默认行为。

分层

实体数据模型包含3个独立的层,概念层、存储层、映射层。每个层互不耦合。

任何有用的应用程序都需要将对象持久化到某一数据存储系统中,实体框架中的数据模型定义表、列,关系以及映射到底层数据库中的数据类型。存储架构定义语言(SSDL)定义了存储模型的语法。

最后,映射层定义概念层和存储层的之间的映射。除此之外,该层定义实体类的属性如何映射到数据库表中的列。它在实体数据模型的映射详细信息窗口、数据注解、以及基于代码方式的API向开发人员呈现。它的语法由映射规格语言(MSL)来定义。

术语

实体框架有自己的词汇表,如果你已经使用别的流行的ORM工具或者与之相似的数据库模型,也许,在这之前你已经遇到一些词汇。虽然完整的词汇表的数量是巨大的,但我们只提供少数基本术语便让我们开始学习。

如前所述,一个实体类型代表领域模型中的一个类。一个实体类型的实例通常是指一个实体。如果你使用实体框架设计器,一个实体类型在设计器中被表示成一个拥有不同属性的方框。图1-3展示两个实体类型:Employee和Task.

图1-3Employee和Task一对多关系的模型

一个实体类型一般拥有一个或多个属性。像一个类,一个属性是一个特定数据类型的指定值。属性可以是像integer,string等简单类型;也可以是复合类型(ComplexTypes);或者是一个集合。导航属性(Navigationproperties)是指跟其它实体有关联的属性(数据库中的外键关系)。在实体类型中不是导航属性的属性通常叫做标量属性(scalarproerties).

两个实体之间的关系(relationship)叫做关联(association).实体类型间的关联在设计器中表示为连接两者的一条直线。线的两端带有表示多重性的注解。图1-3中的关联是一个表示Employeet和Task之间一对多的关联。一个Employee可以有0个或是多个Tasks。每个Task关联一个确定的Employee。

每个实体类型都有一个属性或一个属性集来指示它的实体键。在实体框架中一个实体键唯一标识一个实体,一般它被映射到实体对应的底层数据库表的主键。

最后,没有讨论实体框架而不提到上下文对象(contextobject)的。上下文对象是实体框架服务的入口,它暴露实体对象,管理数据库连接,生成参数化的SQL语句,从数据库中封送(marshals)数据或封送数据到数据库,缓存对象,维护对象变化跟踪,把无类型的结果集转换到一个强类型的集合对象。

一开始,上下文对象为ObjectContext对象,现在,实体框架支持另一个最新的名为DbContext的上下文对象。DbContext大大简单化了使用实体框架的体验。有趣的是,DbContext是ObjectContext的一个包装器或者外观实现者。以一种直观的、友好的、有效的方式暴露底层ObjectContext的功能。

无疑,DbContext已经是使用实体框架的首选。同时本书也将非常详细地介绍它。

代码

尽管有可视化的设计器的强有力支持,实体框架到处是代码,模型、实体类型、关联、映射等最终的具体的代码来表述,这些代码最终成为应用程序的一部分。他们可以由VisualStudio和实体框架产生,也可由开发团队手工创建。你可以选择一些代码生成工具来生成,或者通过修改你项目中不同的属性,或者修改底层的代码生成模板来生成。

VisualStudio使用一个名为T4(TextTemplateTransformationToolkit)模板的代码生成技术来自动生成代码。VisualStudio中的T4模板支持你编辑出能生成适合你确切需要的代码的模板。虽然这是一项高级技术,但我们在很多情况下都需要使用它。我们将会向你展示如何修改它的一些方法。

作为一种选择,你可以利用最新的代码优先(Code-First)技术来手工创建具体的代码,以此控制整个过程。使用代码优先,开发人员可以在没有设计器的帮助下创建实体类,映射,上下文对象。手工创建的实体类,一般是指简单公共语言运行时对象(POCO-PlainOldCLRObjects),它没有依赖实体框架设施。更有趣的是,开发团队可以利用实体框架的强大的实用工具(可以从微软官方网站下载)从一个存在的数据库中逆向生成代码优先模型。第八章将向你展示使用POCO创建之前的创建实体类、映射、上下文对象工作的基本过程。贯穿本书的大量方法将向你展示如何使用Code-First解决N-层架构的应用程序。

THE END
1.英语词汇recipe怎么读,是什么意思,单词翻译读音固定搭配用法英汉双解词典包含38652条英汉词条,基本涵盖了全部常用单词的翻译及用法,是英语学习的有利工具。http://ec.newdu.com/28116.html
2.simplified* 在设计领域,可能会提到“simplified design”,意为简化的设计。 * 在技术方面,可能会提到“simplified software”,指的是软件被简化以便于使用。 * 在日常生活中,人们可能会说“I use a simplified version of the recipe”,意思是他们使用了一个简化版的食谱。 http://zixun.thjunshi.com/kjhl/202411/2275776.html
3.RECIPE中文(繁体)翻译:剑桥词典I neverfollowrecipesexactlywhen Icook- I just use them asroughguides. I'm always on thelookoutforinterestingnew recipes. 习语 be a recipe for disaster, trouble, success, etc. (recipe在剑桥英语-中文(繁体)词典的翻译 ? Cambridge University Press) https://dictionary.cambridge.org/zhs/%E8%AF%8D%E5%85%B8/%E8%8B%B1%E8%AF%AD-%E6%B1%89%E8%AF%AD-%E7%B9%81%E4%BD%93/recipe
4.recipes是什么意思recipes在线翻译英语读音用法例句recipes 英['res?p?z]美['res?p?z] 配方 Created with Highcharts 3.0.2释义常用度分布图海词统计 配方 recipes的英文翻译是什么意思,词典释义与在线翻译: 英英释义 名词recipe: directions for making something recipes的用法和样例: 例句http://dict.cn/recipes
5.翻译'recipes'–字典中文加 在上下文、翻译记忆库中将“recipes"翻译成 中文 变形 干 And you see these recipes on the side? 你们注意到旁边这些食谱了吗? ted2019 * Look for a simple recipe that brings swift results. *选择一个做法简单、收效快捷的食谱。 jw2019 In his last report to the General Assembly (https://glosbe.com/en/zh/recipes
6.recipes是什么意思,recipes怎么读,recipes翻译为:烹饪法(reciprecipes的中文意思:烹饪法( recip,点击查看详细解释:recipes的中文翻译、recipes的发音、音标、用法和双语例句等,让你有效掌握recipes这个单词。https://fy.tingclass.net/w/recipes
7.Recipes的翻译是:食谱中文翻译英文意思,翻译英语Recipes 青云英语翻译 请在下面的文本框内输入文字,然后点击开始翻译按钮进行翻译,如果您看不到结果,请重新翻译! 翻译结果1翻译结果2翻译结果3翻译结果4翻译结果5 翻译结果1复制译文编辑译文朗读译文返回顶部 食谱 翻译结果2复制译文编辑译文朗读译文返回顶部http://eyu.zaixian-fanyi.com/fan_yi_4176220
8.recite是什么意思recite怎么读中文意思用法recite recite是什么意思、recite怎么读 读音:英[r?'sa?t] 美[r?'sa?t] 初中高中四级六级考研雅思 recite 基本解释 vt.& vi. 背诵;叙述;列举 vt. 详述,列举;吟诵 vi. 背诵;叙述 recite 词性变化 现在分词:reciting 过去式:recited 过去分词:recited 第三人称单数:reciteshttps://danci.gjcha.com/recite.html
9.recipes的意思是什么recipes中文翻译recipes 历史记录 recipes 双语例句 更多例句 1、 recipesfor jams and preserves 果酱和蜜饯的制作方法 《牛津高阶英汉双解词典》 2、 We produce our own hair-care products, all based on herbalrecipes. 我们自己生产护发产品,全部采用草本配方. 柯林斯词典例句库https://dict.ruihongw.com/recipes
10.recipes的意思recipes翻译recipes用法例句recipes的用法例句英语词典推荐学习词条 英汉词典常见短词用法 字谜推荐 | 笑话推荐 | 对联 | 造句 爱好旅游(打一成语) 年初一晚上打一节目名称 元宵节灯谜:元宵前后共团圆 (打一字) 老赵一走开,完全就变样 (打一食品) 茅台汾酒五粮液,生产流程一样精 (打一成语) 初秋统计,多出一半 (打一字) 意中人伴有https://www.chazidian.com/juzi/recipes/
11.recipes是什么意思recipes的中文翻译例句用法中文翻译 n.烹饪法( recipe的名词复数 );食谱;方法;秘诀 词态变化 原级:recipe 词组短语 healthyrecipes健康食谱 swizzle drinkrecipes调酒秘方 holidayrecipes节日食谱 vegetarianrecipes素食食谱 numericalrecipes数值分析方法库 用法例句 1. Many of theserecipesare highly flavoured. https://danci.gei6.com/recipes__h3rs9joq.html
12."recipes"是什么意思"recipes"翻译recipes ['resipi] n. 食谱;[医]处方;秘诀 同义词 n. formula 参考例子 1.Do you have any good healthy recipes? 有谁知道什么好时髦饮食谱? 2.I hope these recipes will bring you good appetite and health. 希望本书能为大家带来好胃口及身体健康。 3.Most of these are ingredients which are http://mdict.kekenet.com/obedience?word=recipes
13.recipes是什么意思recipes的翻译记忆用法托福例句雅思威学在线词典,为您提供recipes的中文意思,recipes的用法讲解,recipes的读音,recipes的同义词,recipes的反义词,recipes的例句等英语服务。https://t.weixue100.com/word/recipes
14.casualrecipes的中文翻译汉语译词专业词典学术词典casual recipes怎么翻译, 它的中文翻译、汉语译词,岩石的相关专业术语翻译, 来自SCIdict赛斯专业词典的翻译, SCIdict是专为学术研究人员以及技术专家设计的中英专业术语搜索词典,致力于为细分专业领域的翻译提供参照, 并同时促进各行各业人士的专业汉语学习进阶。https://www.scidict.org/items/casual%20recipes.html
15.词汇“simplerecipes”的读音翻译用法及例句simple recipes发音 意思翻译 单方;简易食谱 相似词语短语 simple recipe───单方;简易食谱 simple machines───[机]简单机械 simple device───简单设备 simple tenses───简单时态 simple times───单拍子 simple fractions───[数]简分数 simple fractures───单纯骨折(断骨未刺穿皮肤) http://www.frnht.com/59557.html
16.FoundfreeAIsoftware搜狗翻译andRecipesByAI搜狗翻译 VS Recipes By AI 搜狗翻译 No Rating Yet Sogou Translate, a multilingual translation AI assistant. Recipes By AI 4.5Points Generate customized recipes based on provided ingredients, making it easy for you to start cooking. Traffic Overview https://www.ai-apps.com.cn/contrastproduct?id=d6b2ce7fe280472fb24d79be7efd0cc5&id2=b621f2822aff4609873deea59685d6c7
17.EntityFramework6Recipes(中文word翻译版)资源《 Entity Framework 6 Recipes 》中文翻译系列 (1) --- 第一章 开始使用实体框架之历史和框架简述 《 Entity Framework 6 Recipes 》中文翻译系列 (2) --- 第一章 开始使用实体框架之使用介绍 《 Entity Framework 6 Recipes 》中文翻译系列 (3) --- 第二章 实体数据建模基础之创建一个简单的模型 https://download.csdn.net/download/flyerboy/10425894
18.NaturalHarvestAcollectionofSemen陕西省城镇企业职工基本养老保险注销登记表盖章单位编号:单位名称(章): 年 月 日社会保险登记证编号批准注销、解散等文件名称批准日期注销原因 注销营业执照 ( ) 吊销营业执照 ( ) Natural Harvest - A collection of Semen-Based Recipes外文翻译 来自淘豆网www.taodocs.com转载请标明出处.https://www.taodocs.com/p-22659275.html
19.英语diaphoreticrecipes的翻译音标读音用法例句词典翻译有道精品课云笔记惠惠更多产品 登录 有道- 网易旗下搜索 中英▼ 目录 释义 go top diaphoreticrecipes网络释义 解表剂 diaphoreticfunction发汗机能 diaphoreticrecipes解表剂 diaphoreticvolume发汗量 基于2个网页-相关网页应用推荐https://dict.youdao.com/w/diaphoreticrecipes/
20.《EntityFramework6Recipes》中文翻译系列(28)翻译的初衷以及为什么选择《Entity Framework 6 Recipes》来学习,请看本系列开篇 5-11 测试实体引用或实体集合是否加载 问题 你想测试关联实体或实体集合是否已经加载到上下文中,另外你想使用Code-First来管理数据访问。 解决方案 假设你有如图5-26所示的概念模型 https://www.pianshen.com/article/8480589481/
21.recipesforjamsandpreserves是什么意思在线翻译recipes for jams and preserves的意思是:果酱和蜜饯的制作方法http://www.hanyucidian.cn/sentence/E153100.html
22.recipe是什么意思音标翻译成中文用法举例词典中文recipe 英语 翻译配方 英式: [?res?pi]美式: [?res?pi] 单词用法: recipe 在不同场景下,可译为: 烹饪法,食谱,方法,秘诀,诀窍 的意思。 n. 名词 1、方法 2、秘诀 3、诀窍 4、食谱 5、烹饪法单词读音: 您的浏览器不支持 video 标签。 双语例句:https://www.3-eee.net/dictionary/ce9c1e9252e6e3da/
23.英语词汇“recipes”的读音翻译释义用法及例句in–house in–law in–line in–service iodic iodide iodides青年旅行网英语在线翻译词典收录了86352条英语词汇在线翻译词条,基本涵盖了全部常用英语词汇的中英文双语翻译及用法,是英语学习的有利工具。Copyright ? 2000-2024 Qntrip.com All Rights Reserved京ICP备2021023879号 更新时间:2024/5/25 18:15:50http://www.qntrip.com/56696.html