Entity Framework 笔记(一)
- Entity Framework概述
EF是一个对象关系映射(ORM)框架,允许开发人员使用特定于域的对象关系型数据,开发人员通常不需要编写大量的数据访问代码。使用EF,开发者可以利用LINQ进行查询,并可以将结果以强类型返回。实体框架的实现提供服务,如更改跟踪,标识解析,延缓加载,以便开发者可以专注于他们应用程序的业务逻辑,而不是基础的数据访问。
简单的来说:EF是一个ORM(Object/Relational Maping)框架,是一个增强了的ADO.NET,为开发人员提供了访问数据库中的数据存储和处理结果自动化机制,除了DataReader 和DataSet之外。
ORM是一个像MS SQL Server的工具,不需要太多的编码,以自动化的方式实现域对象到关系数据库的存储数据。ORM 包括三个主要部分:域类对象,关系数据库对象和域类对象映射到关系数据库的映射信息。ORM使得数据库设计与域类对象设计保持分离,让应用有了可维护性和可扩展性。自动执行的标准操作(创建、读取、更新删除),因此开发人员不需要手动写
- Entity Framework体系
EF的结构体系如图所示:
EDM(Entity Data Model):EDM有三个部分组成:概念模型,映射和存储模型。
Conceptual Model:概念模型就是定义的实体类和他们的关系,并独立于数据库表的设计。
Storage Model:存储模型就是数据库的设计模型,包括:表,视图,存储过程和他们的关系以及键。
Mapping:描述概念模型是如何映射到存储模型的。
LINQ To Entities:LINQ to Entities 是用于编写查询对象的查询语言。返回的是概念模型中定义的实体对象。开发人员可以使用LINQ技巧做开发。
Entity SQL:Entity SQL和LINQ to Entities 一样是一种查询语言,比L2E难,开发者要重新学习他。详细
ObjectService:对象服务是用于访问数据库中的数据并返回的主入口点。
Entity Client Data Provider:负责L2E和Entity SQL转换成SQL。利用ADO.NET数据提供程序发送或检索数据。
ADO.NET Data Provider:使用标准的ADO.NET与数据库通信。
- Entity Framework 开发模式:
简单的来下EF的开发模式。
DataBase First:基于已经存在的数据库,生成EDM。
Model First:根据实体EDM生成数据库。
Code First:先从代码开始,然后实体框架生成数据库。
每种方式的具体使用方式,会在后续中陆续写到……
Entity Framework 笔记(一)的更多相关文章
- Entity Framework笔记(一)
最近在看MVC方面的资料,看了几个教程都在使用Entity Framework做数据持久化.之前也听说过这个东西,在微软的网站上看过一个演示视频,但都没怎么去仔细研究.MVC的东西太庞大了,先慢慢熟悉 ...
- Entity Framework笔记(二)
前几日学习了在VS2010Console项目中使用Entity Framework,并且使用Code First模式.通过编写Model类,来生成数据库对应的表.并且,往表中写入数据以及获取表中的所有 ...
- .NET:Entity Framework 笔记
有二年没关注EF,今天无意试了下发现跟主流的Hibernate等ORM框架越来越接近了,先看下Entity类的定义: using System; using System.Collections.Ge ...
- Entity Framework 学习笔记(2)
上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// ...
- Entity Framework学习笔记
原文地址:http://www.cnblogs.com/frankofgdc/p/3600090.html Entity Framework学习笔记——错误汇总 之前的小项目做完了,到了总结经验和 ...
- Entity Framework 6 学习笔记2 — 增、删、改、显示简单代码示例
前言 通过 “Entity Framework 6 学习笔记1 — 介绍和安装方法”文章我相信大家对EF的安装应该没什么问题了,整体安装还是比较简单的,只需要通过Nuge搜索EF然后安装就可以了,这也 ...
- ADO.NET Entity Framework学习笔记(3)ObjectContext
ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转] 说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject ...
- .NET 5学习笔记(10)——Entity Framework Core之切换SQLServer和SQLite
上一篇我们梳理了CodeFist的一般流程,本篇我们讨论如何在一套代码中,支持SQL Server和SQLite的切换.同时从本篇开始,我们从.NET Core 3.1 迁移到.NET 5.相信.NE ...
- MVC中使用Entity Framework 基于方法的查询学习笔记 (一)
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”-- ...
随机推荐
- python入门学习课程推荐
最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化 ...
- 第五章 运输层(UDP和TCP三次握手,四次挥手分析)
序言 通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅 ...
- Java多线程系列--“JUC线程池”03之 线程池原理(二)
概要 在前面一章"Java多线程系列--“JUC线程池”02之 线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明.内容包括:线程池示例参考代 ...
- spring bean生命周期管理--转
Life Cycle Management of a Spring Bean 原文地址:http://javabeat.net/life-cycle-management-of-a-spring-be ...
- Android基于mAppWidget实现手绘地图(十)–在放大前后执行一些操作
为了在放大前后执行一些操作,你需要添加MapEventsListener 的实例到MapWidget,使用MapWidget.removeMapEventsListener移除该监听器. mapWid ...
- Mac下如何配置环境变量
以前都是在Windows平台上开发,在配置一些框架的时候,为了能够在命令行中调用,一般都会配置bin目录到环境变量中,这是为了让命令行在执行的时候,能够查找到对应的执行文件. 现在工作使用Mac,配置 ...
- SQL Server数字辅助表的实现
数字辅助表是一个连续整数的数列,通常用来实现多种不同的查询任务.大多分两类:足够大物理数字表和表函数,前者可以称为静态的,后者可以称为动态且按需生产. 物理数字表 物理数字表通常存在一 ...
- 试试用有限状态机的思路来定义javascript组件
本文是一篇学习性的文章,学习利用有限状态机的思想来定义javascript组件的方法,欢迎阅读,后续计划会写几篇专门介绍自己利用有限状态机帮助自己编写组件的博客,证明这种思路对于编程实现的价值,目前正 ...
- Redis使用总结(2):Python接口
安装redis-py sudo pip2 install redis 牛刀小试 redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量直接使用.如果需要另一个Redis实例(o ...
- java中synchronized关键字的用法
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. j ...