.NET中微软实体框架的数据访问方法

本文的目的是解释微软的实体框架提供的三种数据访问方法。网上有好几篇关于这个话题的好文章,但是我想以一个教程的形式更详细地介绍这个话题,这个教程对于开始学习实体框架及其方法的人来说是个入门。我们将逐步探索每个方法,通过这些方法,我们可以在应用程序中使用实体框架访问数据库和数据。我将使用实体框架版本6.2和.NETFramework 4.6。和Visual Studio 2017的教程。对于数据库,我们将使用SQLServer。如果没有安装SQLServer,则可以使用本地数据库。我将在本文中首先解释数据库和模型优先方法,并在下一篇文章中解释代码优先方法和代码优先迁移。

实体框架

微软实体框架是ORM(对象-关系映射)。维基百科的定义对于ORM和PITY非常简单。

计算机科学中的对象关系映射(ORM、O/RM和O/R映射工具)是一种使用面向对象的编程语言在不兼容类型系统之间转换数据的编程技术。实际上,这将创建一个可以从编程语言中使用的“虚拟对象数据库”。

作为一个ORM,实体框架是由Microsoft提供的数据访问框架,它有助于在应用程序中建立对象和数据结构之间的关系。它是通过传统的ADO.NET构建的,并作为ADO.NET上的包装器。它是对ADO.NET的一种增强,它以更加自动化的方式提供数据访问,从而减少了开发人员与连接、数据读取器或数据集的斗争。它是对所有这些的抽象,对它所做的贡献更为强大。开发人员可以对他所需要的数据、形式和数量有更多的控制权。没有数据库开发背景的开发人员可以利用实体框架和LINQ能力编写优化查询来执行DB操作。SQL或DB查询执行将由后台实体框架处理,它将处理可能发生的所有事务和并发问题。EntityFrameworkTutorial是一个网站,您可以通过它深入了解这个概念,并理解它的工作模型、体系结构等等。

实体框架方法

了解微软实体框架提供的三种方法是非常常见的。三种方法如下:

模型优先

数据库优先

代码优先

从数据模型类生成数据库。

从现有数据库生成数据模型类。

模型第一种方法说,我们有一个模型,该模型具有各种实体和关系/关联,使用该模型,我们可以生成一个数据库,最终将实体和属性转换为数据库表,列和关系将转换为外部分别是密钥。

数据库第一方法表示,我们已经有一个现有的数据库,我们需要在我们的应用程序中访问该数据库。我们可以直接从数据库创建实体数据模型及其关系,只需要几次单击即可开始从我们的代码访问数据库。所有实体,例如,类将由实体框架生成,实体框架可用于应用程序数据访问层以参与DB操作查询。

代码优先方法是EF的推荐方法,尤其是在从头开始开发应用程序时。您可以预先定义POCO类,以及它们的关系,并通过在代码中定义结构来想象数据库结构和数据模型的样子。最后,实体框架将负责为您的POCO类和数据模型生成数据库,并负责事务、历史和迁移。

通过这三种方法,您可以完全控制在任何时间点按需要更新数据库和代码。

模型优先

使用模型第一方法,开发人员可能不需要编写任何代码来生成数据库。实体框架提供了设计器工具,这些工具可以帮助您创建模型,然后从中生成数据库。这些工具更多的是拖放控件,它们只需要输入,比如实体名是什么、应该具有什么属性、与其他实体如何相关等等。用户界面是非常容易使用和有趣的。模型设计器(如果可以的话)将帮助您生成DDL命令,这些命令可以直接从Visual Studio或在您的数据库服务器上执行,以便从您创建的模型创建数据库。这将创建一个EDMX文件,该文件存储概念模型、存储模型和两者之间的映射信息。要了解概念模型和存储模型,可以参考本文介绍中所提供的链接。我能够看到的唯一缺点是,完全删除数据库并重新创建数据库将是这种方法的挑战。

数据库优先

当我们已经有一个现有的数据库并且需要在我们的应用程序中访问时,我们首先使用数据库的方法。使用实体框架为现有数据库建立数据访问方法将帮助我们在解决方案中生成上下文和类,通过这些上下文和类我们可以访问数据库。这是模型第一种方法的反面。这里,模型是通过数据库创建的,我们可以完全控制在模型中包括哪些表,以及包括哪些存储过程、函数或视图。您的应用程序可能是一个子应用程序,它不需要大型数据库的所有表或对象,因此您可以在这里自由地控制应用程序中所需的内容和应用程序中不需要的内容。每当数据库模式改变时,只需单击设计器或实体数据模型即可轻松更新实体数据模型,这将负责映射并在应用程序中创建必要的类。

代码优先

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjzdj.html