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.“文件”--“新建项目”-- ...
随机推荐
- ios app 打包上传 app store(Application Loader)
背景:使用Xcode 上传APP, 这个 有时候很慢,构建版本需要等很长时间,所以我推荐使用Application Loader 1.使用xocd 打包,导出.ipa文件 2. OK ,跟着上面做, ...
- ::after::before清除浮动原理
先来看一段代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- bower一个强大的前端依赖包管理工具
在介绍之前,你必须的知道bower是基于nodejs开发的,所以你首先必须得有个nodejs环境,至于这么安装nodejs网上一大堆教程,对了使用bower还需要安装git,这里就不多说了. #### ...
- http的500,502,504错误
500 500的错误通常是由于服务器上代码出错或者是抛出了异常 解决方法:查看一下对应的代码是不是有问题. 502 502即 Bad Gateway网关(这里的网关是指CGI,即通用网关接口,从名字就 ...
- 【目录】开源Math.NET基础数学类库使用总目录
本博客所有文章分类的总目录链接:[总目录]本博客博文总目录-实时更新 1.开源Math.NET数学组件文章 1.开源Math.NET基础数学类库使用(01)综合介绍 2.开源Math.NET ...
- Cocos2d-x 3.2 学习笔记(十六)保卫萝卜 游戏主循环与定时器
保卫萝卜~想法一直存在于想法,实战才是硬道理!有想法就去实现,眼高手低都是空谈. 一.游戏主循环GameSchedule 主循环是游戏处理逻辑,控制游戏进度的地方,处理好主循环是很重要的 ...
- 使用bokeh-scala进行数据可视化
目录 前言 bokeh简介及胡扯 bokeh-scala基本代码 我的封装 总结 一.前言 最近在使用spark集群以及geotrellis框架(相关文章见http://www.cnbl ...
- JavaScript及兼容性笔记
1. Json to String JSON.stringify(jsonobj)//(IE8+,Chrome 1+,FF 3+) //参考 http://www.nowamagic.net/libr ...
- Mybatis在idea中错误:Invalid bound statement (not found)
学习mybatis的过程中,测试mapper自动代理的时候一直出错,在eclipse中可以正常运行,而同样的代码在idea中却无法成功.虽然可以继续调试,但心里总是纠结原因.百度了好久,终于找到一个合 ...
- C#中是否可以继承String类
C#中是否可以继承String类? 答:String类是sealed类故不可以继承. 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承. 在下面的示例中,类 HoverTree ...