【.NET】EF框架之三种模式

使用EF之前必须要对EF有个宏观的了解.学习任何一种技术都要像门卫一样问几个问题.

第一,它是谁?

第二,从哪里来?

第三,到哪里去?

默念一遍:不谋全局者,不足谋一域.

今天老师宏观给讲了一下EF的好处,抛出为什么要用EF的问题,我们的回答仅仅是概念和技术上的浅显的认识,老师的话我并未全部理解.先来整理一下自己所认识的EF吧.

Entity Framework是ORMapping的一种具体实现,那ORMapping又是什么呢?ORM--ObjectRelation
Mapping,即对象关系映射框架/数据持久化框架,是根据实体对象操作数据表中数据的一种面向对象的操作框架.

其实Entity Framework的底层也是调用Ado.Net,它是更高层次的封装.作为数据访问的技术,EntityFramework的设计有高扩展性,这一点可体现在其映射定义的灵活性.简单地说,使用Entity
Framework可以充分地定义与数据库表映射的实体,这个实体可以直接用于业务逻辑层或作为服务的数据契约.使用EF后,可以将实体类的设计工作完全放在EDM的设计过程中,而不需要手工写那些大同小异的代码,令人欣喜的是这个实体模型可以在运行时修改并生效,做到一改全改.我们开发时也不用再频繁地与数据库打交道,我们操作实体模型的同时EF框架自动完成了对数据库的操作.

对于一种新了解的技术,了解宏观是必须的,但是要想尽快熟悉还是要做一做的,写一写demo.这次底层设计一直在讨论教育云平台的实体部分使用哪种模式,我们知道网络上特别流行Codefist,下面就来说一说EF框架划分的模式:

  • DataBase First
  • Model First
  • CodeFirst

  DataBase First传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。

  Model First先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。

  Code First手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是代码工作较多。

  虽然Code First灵活,但是我们不可能手工去写大量的POCO类和映射关系。下一步看我们的开发吧.

时间: 2024-10-05 04:19:17

【.NET】EF框架之三种模式的相关文章

EF的三种模式

1.DateBase First(数据库优先) 2.Model First(模型优先) 3.Code First(代码优先) 当然,如果把Code First模式的两种具体方式独立出来,那就是四种了. Code First(New DataBase) :在代码中定义类和映射关系并通过model生成数据库,使用迁移技术更新数据库. Code First(Existing DataBase):在代码中定义类和映射关系,给逆向工程提供工具. Model First:在设计器中创建Model,并用Mod

第十三节: EF的三种模式(三) 之 来自数据库的CodeFirst模式

一. 简介 [来自数据库的Code First模式]实质上并不是CodeFirst模式,而是DBFirst模式的轻量级版本,在该模式中取消了edmx模型和T4模板,直接生成了EF上下文和相应的类,该模式出现在VS2015版本以后.   该模式也是适用于数据库已经设计建好的情况. 生成的上下文和类库如下: 二. 使用介绍 使用方法除了,选择模式的不一致,其他的使用步骤同DBFirst完全相同. 选择对应的模式

集合框架之三种迭代的能否删除

一:普通for循环的删除 1 // 普通for循环,通过索引删除,删除后索引要-- 2 for (int i = 0; i < list.size(); i++) { 3 if ("d".equals(list.get(i))) { 4 list.remove(i--); 5 } 6 } 7 System.out.println(list); 二:迭代器两种遍历(删除)方式 方式一: 1 // 迭代器删除,不能用集合的删除方法,因为迭代过程中修改会发生并发修改异常 2 ListI

LVS学习笔记之三种模式的特点概括

NAT: 1.RealServer应该使用私有IP地址: 2.RealServer的网关应该指向DIP: 3.RIP和DIP应该在同一个网段内: 4.进出的报文都得经过Directory,在高负载下,Directory会成为系统性能瓶颈: 5.支持端口映射: 6.RealServer可以使用任意OS. DR:Direct Routing 1.RealServer可以使用公网地址: 2.RealServer的网关一定不能指向DIP: 3.RealServer和Director要在同一物理网络内,D

【.NET】EF框架之环境配置

我们的开发环境是VS2012,既然要使用EF做框架,必然要安装EntityFramework.这是EF框架的编程模型,微软官网可以下载,现在的版本是EF6.1.1.行动之前先安装一个插件,叫做NuGet PackageManager,它的作用就是为VS工程项目自动下载/安装/升级/配置/移除包. 方法如下: 插件安装完成后重启VS.然后新建一个C#项目. 然后再控制台输入下图红色框中的命令: 安装完成后,你会惊奇的发现: (1)多了一个文件. (2)App.Config内容多了一部分. <con

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(6)- EF上下文实例管理 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程   (4 ):业务逻辑层的封装  (5):前台Jquery easyUI实现 前言:通过前面的五篇博客我们已经对权限系统的后台架构进行了详细的说明,那么我再前面的博客中也说到了我们的后台架构还会再改的,我准备这段时间我们继续完善我们的后台

MVC + EF 框架 对数据库做增删改查

这几天一直在看MVC 开发模式,其中借助EF框架对数据库进行 增删改查操作 现在就小小的总结一下吧 在使用EF操作数据库时,会首先添加 ADO.NET数据模型,这时,会为我们添加一个数据上下文类,使用这个类的对象可以对数据库做任何操作.所以在使用EF操作数据库之前 需要创建数据上下文对象. MyDatabaseEntities mde = new MyDatabaseEntities(); 1.使用EF 对数据库 做增加操作 1.1 创建一个需要被操作数据表的对象(一般来说 ,一张表就是一个实体

什么是EF框架

什么是EF框架 ? 全称EntityFramework 官方点的解释是Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架. ORM框架是什么东西? Object Relational Mapping 翻译过来就是对象关系映射.如果你无法理解这个东西.我只能告诉你去百度了.反正我刚开始的也不太明白.下面有个图方便我们理解 在整个领域比较常用的有:Hibernate,iBATIS,mybatis这些在java生态里面应用的orm框架