EF6基础系列(一)---什么是Entity Framework

什么是Entity Framework

1.EF的概念

在.NET3.5之前,我们经常编写ADO.NET代码或企业数据访问块来保存或检索底层数据库中的数据。做法是:打开过一个数据库的连接,创建一个DataSet来获取或提交数据到数据库,通过将DataSet中的数据和.NET对象相互转换来满足业务需求。这是一个麻烦且容易出错的过程Microsoft提供了“Entity Framework”框架,用于自动地执行所有上述与数据库相关的活动。
EF是一个适用于.NET开发的开源ORM框架。它使开发人员能够通过领域对象来处理数据,而无需关注存储此数据的基础数据库。使用实体框架,开发人员在处理数据时可以在更高的抽象级别上工作,并且与传统应用程序相比,可以使用更少的代码创建和维护面向数据的应用程序。
官方定义:“实体框架是一种对象关系映射器(O/RM),它使.NET开发人员能够通过.NET对象来操作数据库。它消除了开发人员通常需要编写的大多数数据访问代码的需求。“

实体框架工作在业务实体(域类)和数据库之间。它保存实体属性中的数据到数据库,也可以从数据库中检索数据并自动将其转换为实体对象。

2.EF功能总结

这里简单地总结EF的特性,以后详细总结

1.跨平台   EF Core是一个跨平台的框架,可以在Windows,Linux和Mac上运行。
2.建模     EF可以创建具有不同数据类型get / set属性的EDM(Entity Data Model/实体数据模型)。它使用此模型查询或保存底层数据库的数据。
3.查询     EF允许我们使用LINQ从底层数据库中检索数据,同时也支持直接对数据库执行原始SQL查询。
4.更改跟踪  EF会跟踪需要提交到数据库的实体实例(属性值)发生的更改。
5.保存     EF调用SaveChanges()方法时,根据实体发生的更改,对数据库执行INSERT,UPDATE和DELETE命令。EF还提供了异步的SaveChangesAsync()方法。
6.并发     默认情况下,从数据是从数据库中提取开始,EF使用乐观并发来避免我们做的修改被其他用户覆盖。
7.事务     EF在查询或保存数据时自动执行事务管理。它还提供自定义事务管理的选项。
8.缓存     EF包括开箱即用的第一级缓存。因此,重复查询将从缓存中返回数据,而不是访问数据库。
9.配置     EF允许我们使用注释属性配置EF模型,也可以使用Fluent API来覆盖默认约定。
10.迁移    EF提供了一组迁移命令,我们可以在NuGet Package Manager控制台或命令行界面中执行这些命令来创建或管理底层数据库计划。

原文地址:https://www.cnblogs.com/wyy1234/p/9625583.html

时间: 2024-08-30 01:34:18

EF6基础系列(一)---什么是Entity Framework的相关文章

ASP.NET CORE系列【六】Entity Framework Core 之数据库迁移

前言 最近打算用.NET Core写一份简单的后台系统,来练练手 然后又用到了Entity Framework Core 发现园子里有些文章讲得不是那么细节,对于新手小白来说,可能会有点懵. 特意整理了几个细节. 正文 数据迁移 首先EF CORE跟以前的EF6是有不同点的, 微软官网列出的不同点:https://docs.microsoft.com/zh-cn/ef/efcore-and-ef6/features 安装 EF 核心 NuGet 包 若要使用 EF 核心,请为你想要使用的数据库提

ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html 上一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag 源码下载:点我下载 一.创建Model MVC中的Model是用来给View提供显示数据的对象. 这里我们首先创建一个Model对象. 在解决方案资源管理器中右键点击Models文件夹,选择添加->类.添加一个名为Employee.cs的Model类

Entity Framework Core系列之什么是Entity Framework Core

前言 Entity Framework Core (EF Core)是微软推荐的基于.NET Core framework的应用程序数据访问技术.它是轻量级,可扩展并且支持跨平台开发.EF Core是一种对象关系映射器(ORM).通过应用程序实体对象和关系数据库中的数据的映射,使得开发人员能够以面向对象的方式处理数据. 为什么使用ORM 大多数开发框架都包含库,这些库允许通过类似记录集的数据结构访问关系数据库中的数据.下面的代码示例演示了一个典型的场景,即数据从数据库中检索并存储在ADO.NET

Entity Framework 学习系列(1) - 认识理解Entity Framework

目录 写在前面 什么是Entity Framework EF的优缺点 1.优点 2.缺点 如何理解ORM EF执行的原理 写在前面 在使用.net mvc 开发的时候.为了高效的开发,我们常常会搭配ORM框架使用. 而Entity Framework正是微软开发的一种ORM框架.一般情况下,我们很少用全称, 而是直接用EF.因为都是微软的产品,所以通常它和MVC是黄金搭档. 什么是Entity Framework 全称ADO.NET Entity Framework,简称为EF.优点是能高效的开

ORM系列之二:Entity Framework(2)Code First

目录 1. Code First是什么? 2. Code First 简单示例 3. 数据存储 4. 迁移 Code First是什么 Code First 顾名思义就是先写代码,当然不是乱写,而是安装一定的约定,先创建实体类,再通过编辑器自动生成数据模型.Code First是EF的三大模式之一,主要使用新的系统开发,对应数据库已存在的情况下不适合. Code First 简单示例 下面通过一个简单的示例,让我们来熟悉一下Code First模式. 第一步:创建一个控制台程序,命名为“EF.C

EF6基础系列(九)--- 附加离线实体图集到上下文

附加离线实体图集到上下文 这节主要内容是通过不同的方法将离线实体附加到上下文中. 在离线场景中,保存一个实体要略微困难一些.当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中,让上下文了知道存在这些实体.其次,我们需要手动设置每个实体的EntityState,因为新的上下文不知道这些离线实体都经过了些什么操作,所以新的上下文不能自动地给实体添加EntityState. 下图说明了此过程. 为了将离线实体附加到上下文,并为实体图中的每个实体设

EF6基础系列(十)---离线场景保存实体和实体图集

离线场景保存和删除实体/实体图集 这一节的内容是在离线场景中保存实体和实体图集 在离线场景中,当我们保存一个离线的实体图集或一个单独的离线实体时,我们需要做两件事.首先,我们要把实体附加到新的上下文中,让上下文了知道存在这些实体.其次,我们需要手动设置每个实体的EntityState,因为新的上下文不知道这些离线实体都经过了些什么操作,所以新的上下文不能自动地给实体添加EntityState.上一节我们清楚了附加离线图集的方法,附加离线图集时默认添加的EntityState不一定合适,所以我们就

EF6基础系列(十一)---EF6中的异步查询和异步保存

EF6中的异步查询和异步保存 在.NET4.5中介绍了异步操作,异步操作在EF中也很有用,在EF6中我们可以使用DbContext的实例进行异步查询和异步保存. 1.异步查询 下边是一个通过L2E语法实现异步查询的栗子: private static async Task<Student> GetStudent() { Student student = null; using (var context = new SchoolDBEntities()) { Console.WriteLine

EF6基础系列(12)--- EF进行批量添加/删除

EF6添加了批量添加/删除实体集合的方法,我们可以使用DbSet.AddRange()方法将实体集合添加到上下文,同时实体集合中的每一个实体的状态都标记为Added,在执行SaveChange()方法时为每个实体执行Insert操作:同样的我们使用DbSet.RemoveRange()方法将集合中的所有实体都标记为deleted状态,在执行SaveChange()方法时为每一条数据执行delete操作. 通过AddRange()和RemoveRange()方法可以有效提升性能,所以建议在进行不批