Entity Framework 一
本篇主要介绍:EntityFramework简介, 实体框架架构图, EF版本
实体框架:
编写和管理数据访问的ADO.Net代码是一件单调乏味的工作。微软已经提供了一个名为“实体框架”的O / RM框架来为你的应用程序自动化数据库相关的活动。
Microsoft已经给出了Entity Framework的以下定义:(简称 EF)
实体框架是一个对象/关系映射(O / RM)框架。这是ADO.NET的一个增强,它为开发人员提供了访问和存储数据库数据的自动化机制。EF为现有数据库创建数据访问类,以便您可以直接使用这些类与数据库交互,而不是直接与ADO.Net交互。
实体框架在三种情况下是有用的。首先,如果你已经有了现有的数据库,或者你想在应用程序的其他部分之前设计你的数据库。其次,您要专注于您的域类,然后从您的域类创建数据库。第三,你想在可视化设计器上设计你的数据库模式,然后创建数据库和类。
ORM
ORM是一种将数据从域对象存储到关系数据库(如MS SQL Server)的工具,它以自动化的方式,不需要太多的编程。
O / RM包括三个主要部分:域类对象,关系数据库对象和有关域对象如何映射到关系数据库对象(表,视图和存储过程)的映射信息。ORM允许我们将我们的数据库设计与我们的域类设计分开。这使得应用程序可以维护和扩展。它还自动执行标准的CRUD操作(创建,读取,更新和删除),以便开发人员不需要手动编写。
典型的ORM工具为您的应用程序生成数据库交互的类,如下所示。
市场上有很多.net的ORM框架,如DataObjects.Net,NHibernate,OpenAccess,SubSonic等。实体框架是微软的一个开源的ORM框架。
实体框架的架构图:
EDM(实体数据模型): EDM由三个主要部分组成 - 概念模型,映射和存储模型。
概念模型(Conceptual Model): 概念模型包含模型类及其关系。这将独立于您的数据库表设计。
存储模型(Storage Model):存储模型是数据库设计模型,包括表,视图,存储过程及其关系和密钥。
映射(Mapping):映射由有关概念模型如何映射到存储模型的信息组成。
LINQ to Entities: LINQ to Entities是一种用于针对对象模型编写查询的查询语言。它返回在概念模型中定义的实体。你可以在这里使用你的LINQ技能。
实体SQL:实体SQL是另一种查询语言,就像LINQ to Entities一样。然而,这比L2E稍微难一些,开发者需要单独学习。
对象服务:对象服务是访问数据库中的数据并将其返回的主要入口点。对象服务负责实现,这是将从实体客户端数据提供者(下一层)返回的数据转换为实体对象结构的过程。
实体客户端数据提供者:此层的主要职责是将L2E或实体SQL查询转换为底层数据库可以理解的SQL查询。它与ADO.Net数据提供者通信,而ADO.Net数据提供者又从数据库发送或检索数据。
ADO.Net数据提供程序:该层使用标准的ADO.Net与数据库进行通信。
EF版本:
现在最高的版本是EF6,我们的例子都是EF6的。
准备好数据库:
在上图中可以看到,为了演示目的,示例中的SchoolDB数据库包含具有以下关系的表格。
- 一对一:学生和学生地址有一对一的关系,例如。学生有零个或一个StudentAddress。
- 一对多:标准和教师有一对多的关系,例如。许多教师可以与一个标准联系起来。
- 多对多:学生和课程使用StudentCourse表格,其中StudentCourse表格包含StudentId和CourseId,具有多对多的关系。所以一个学生可以参加很多课程,一个课程也可以有很多学生。
SQL下载: SQL生成语句.zip
Entity Framework 一的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 来,给Entity Framework热热身
先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- Entity Framework教程(第二版)
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航
ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...
随机推荐
- Coursera 机器学习 第9章(上) Anomaly Detection 学习笔记
9 Anomaly Detection9.1 Density Estimation9.1.1 Problem Motivation异常检测(Density Estimation)是机器学习常见的应用, ...
- [转] CentOS下添加用户并且让用户获得root权限
http://www.centoscn.com/CentOS/config/2014/0810/3471.html 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser ...
- 泛型(Generic)委托
泛型(Generic)委托 您可以通过类型参数定义泛型委托.例如: delegate T NumberChanger<T>(T n); 下面的实例演示了委托的使用: using Syste ...
- python的用户输入和while循环
1.函数input()工作原理 函数input()让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. (1)获取数值可以用 int()函数 (2)求 ...
- CSS实现文本周围插入符号
CSS实现文本周围插入符号的方案 本文要讨论的是如何在文本的周围插入图标,怎么样控制它们之间的位置关系,通过HTML结构合理性与CSS属性的使用来比较不同方案所实现效果的优缺点. 常见设计稿要求 在文 ...
- 纯CSS实现Tab切换标签效果代码
在线演示地址如下: http://demo.jb51.net/js/2015/css-tab-bq-style-cha-codes/ <!DOCTYPE html PUBLIC "-/ ...
- ubuntu GITLAB完全导入SVN(提交历史,用户)项目
从SVN导入到GITLAB目前没有直接的方案,通常需要通过GIT转换:SVN –>GIT –>GITLAB.通过这种方式,将SVN的提交历史,用户信息一并导入到gitlab 注:本文只适用 ...
- JVM Guide
Java Virtual Machine: the Essential Guide October 8th, 2014 - By Alexey Zhebel Introduction Java Vir ...
- Highcharts - Pie Chart
1. 饼状图(Pie Chart)示例: <div id="container" style="height: 400px"></div> ...
- SqlServer数据库全角和半角互转的方法
---摘要: SqlServer数据库全角和半角互转的方法 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit -- ...