📝 实体框架教程
48篇技术文档📅  最后修改于: 2020-11-21 07:11:40        🧑  作者: Mango
实体框架是一种对象关系映射(ORM)框架,它为开发人员提供了一种自动机制,用于在数据库中存储和访问数据。本教程介绍了使用“代码优先”方法的Entity Framework的功能。它还说明了Entity Framework 6中引入的新功能。本教程专为希望学习如何在其应用程序中开始开发Entity Framework的用户而设计。先决条件您应该具有Visual Studio,C#和MS SQL Se...
📅  最后修改于: 2020-11-21 07:12:20        🧑  作者: Mango
什么是实体框架?实体框架于2008年首次发布,它是Microsoft在.NET应用程序和关系数据库之间进行交互的主要方式。实体框架是一种对象关系映射器(ORM),它是一种工具,可简化软件中的对象到关系数据库的表和列之间的映射。实体框架(EF)是ADO.NET的开源ORM框架,它是.NET Framework的一部分。ORM负责创建数据库连接和执行命令,以及获取查询结果并将这些结果自动具体化为应用程...
📅  最后修改于: 2020-11-21 07:12:45        🧑  作者: Mango
实体框架的架构从下至上由以下部分组成-资料提供者这些是特定于源的提供程序,当针对概念性架构进行编程时,它们会抽象ADO.NET接口以连接到数据库。它通过命令树将常见的SQL语言(例如LINQ)转换为本地SQL表达式,并针对特定的DBMS系统执行它。实体客户该层将实体层暴露给上层。实体客户端为开发人员提供了使用实体SQL查询以行和列的形式与实体打交道的能力,而无需生成代表概念性架构的类。实体客户端显...
📅  最后修改于: 2020-11-21 07:13:19        🧑  作者: Mango
实体框架6有哪些新功能?Framework具有复杂的API,可让您对从建模到运行时行为的所有内容进行精细控制。实体框架5的一部分位于.NET内部。它的另一部分位于使用NuGet分发的其他程序集中。实体框架的核心功能内置于.NET Framework中。Code First支持使Entity Framework可以使用类代替可视模型,而NuGet包中提供了一种用于与EF交互的更轻松的API。核心是提...
📅  最后修改于: 2020-11-21 07:13:43        🧑  作者: Mango
在本教程中,我们将使用一个简单的大学数据库。大学数据库整体上可能要复杂得多,但出于演示和学习目的,我们使用的是该数据库的最简单形式。下图包含三个表。学生课程注册每当使用术语数据库时,我们都会直接想到一件事,那就是具有某种关系的另一种表。表之间存在三种类型的关系,不同表之间的关系取决于相关列的定义方式。一对多关系多对多关系一对一关系一对多关系一对多关系是最常见的关系类型。在这种关系中,表A中的一行可...
📅  最后修改于: 2020-11-21 07:14:16        🧑  作者: Mango
实体数据模型(EDM)是实体关系模型的扩展版本,它使用多种建模技术指定数据的概念模型。它还引用了一组描述数据结构的概念,而与数据的存储形式无关。EDM支持一组在概念模型中定义属性的原始数据类型。我们需要考虑构成实体框架基础的3个核心部分,统称为实体数据模型。以下是EDM的三个核心部分。存储架构模型概念模型映射模型存储架构模型存储模型也称为存储模式定义层(SSDL),表示后端数据存储的示意图。概念模...
📅  最后修改于: 2020-11-21 07:14:50        🧑  作者: Mango
实体框架使您可以使用称为实体的公共语言运行时(CLR)对象查询,插入,更新和删除数据。实体框架将模型中定义的实体和关系映射到数据库。它还提供设施-将数据库返回的数据具体化为实体对象跟踪对对象所做的更改处理并发将对象更改传播回数据库绑定对象到控件负责与数据作为对象进行交互的主要类是System.Data.Entity.DbContext。 DbContext API不会作为.NET Framewor...
📅  最后修改于: 2020-11-21 07:15:19        🧑  作者: Mango
在实体框架中,有两种类型的实体允许开发人员将自己的自定义数据类与数据模型一起使用,而无需对数据类本身进行任何修改。POCO实体动态代理POCO实体POCO代表“普通的” CLR对象,可以将其用作数据模型中的现有域对象。在数据模型中定义了映射到实体的POCO数据类。它还支持大多数与实体数据模型工具生成的实体类型相同的查询,插入,更新和删除行为。您可以使用POCO模板从概念模型生成对持久性不了解的实体...
📅  最后修改于: 2020-11-21 07:15:55        🧑  作者: Mango
在关系数据库中,关系是通过外键在关系数据库表之间存在的情况。外键(FK)是一列或列的组合,用于在两个表中的数据之间建立和强制链接。下图包含三个表。学生课程注册在上图中,您可以看到表之间的某种关联/关系。表之间存在三种类型的关系,不同表之间的关系取决于相关列的定义方式。一对多关系多对多关系一对一关系一对多关系一对多关系是最常见的关系类型。在这种类型的关系中,表A中的一行可以在表B中具有许多匹配行,但...
📅  最后修改于: 2020-11-21 07:16:35        🧑  作者: Mango
一生上下文的生命周期从创建实例开始,到实例被处置或垃圾回收时结束。使用ORM时,上下文生存期是一个非常关键的决定。上下文的执行就像实体缓存一样,因此意味着它持有对所有已加载实体的引用,这些引用的内存使用量可能会快速增长,并且还可能导致内存泄漏。在下图中,您可以通过Context查看从应用程序到数据库的数据工作流程的上层,反之亦然。实体生命周期实体生命周期描述了创建,添加,修改,删除实体等的过程。实...
📅  最后修改于: 2020-11-21 07:16:56        🧑  作者: Mango
实体框架提供了三种创建实体模型的方法,每种方法各有优缺点。代码优先数据库优先模特第一在本章中,我们将简要介绍代码优先方法。一些开发人员更喜欢在代码中与Designer一起工作,而另一些开发人员则更喜欢使用其代码。对于那些开发人员,实体框架具有称为“代码优先”的建模工作流程。Code First建模工作流的目标是一个不存在的数据库,Code First将创建它。如果您的数据库为空,也可以使用它,然后...
📅  最后修改于: 2020-11-21 07:17:48        🧑  作者: Mango
在本章中,让我们学习如何使用称为“模型优先”的工作流在设计器中创建实体数据模型。当您开始一个甚至不存在数据库的新项目时,Model First非常有用。该模型存储在EDMX文件中,可以在Entity Framework Designer中查看和编辑。在“模型首先”中,您可以在Entity Framework设计器中定义模型,然后生成SQL,SQL将创建与模型匹配的数据库架构,然后执行SQL在数据库...
📅  最后修改于: 2020-11-21 07:18:16        🧑  作者: Mango
在本章中,让我们学习使用数据库优先方法创建实体数据模型的知识。数据库优先方法为实体数据模型提供了“代码优先”和“模型优先”方法的替代方法。它从项目中的数据库创建模型代码(类,属性,DbContext等),这些类成为数据库和控制器之间的链接。数据库优先方法从现有数据库创建实体框架。我们使用所有其他功能,例如模型/数据库同步和代码生成,就像在模型优先方法中使用它们一样。让我们举一个简单的例子。我们已经...
📅  最后修改于: 2020-11-21 07:18:38        🧑  作者: Mango
在本章中,让我们集中于使用Designer或Database First或仅使用Code First来构建模型。以下是一些准则,可以帮助您决定选择哪种建模工作流程。我们已经看到了代码优先建模,数据库优先建模和模型优先建模工作流程的示例。“数据库优先”和“模型优先”工作流使用了Designer,但是一个工作流从数据库开始创建模型,另一个工作流从模型开始创建数据库。对于那些不想使用Visual Des...
📅  最后修改于: 2020-11-21 07:19:13        🧑  作者: Mango
在前面的章节中,您学习了定义实体数据模型的三种不同方式。其中两个是Database First和Model First,它们依赖于Entity Framework设计器并结合了代码生成。第三个是“代码优先”,它使您可以跳过视觉设计师,而只编写自己的代码。无论选择哪种路径,最终都会得到域类,并且一个或多个Entity Framework DbContext类使您可以检索和持久化与这些类相关的数据。应...