EF之ModelFirst实体先行

继上篇博文中写到了DBFirst,下面就来讲讲关于ModelFirst知识,ModelFirst顾名思义,实体先行!

     适用于在设计实体初期, 没有数据库表的原型,这样开发者在设计实体的同时可以生成数据库表,一举两得。下面就来讲讲ModelFirst的步骤:

首先建立一个控制台应用程序(和DBFirst的步骤相似)

新建如下图:

添加新建项-选择ADO.NET实体数据模型:

这里和DBFirst不一样,因为ModelFirst没有数据库,选择空模型:

 如下图所示:

在空白处右键,选择实体建立:

选择新增实体

新建班级实体:

然后为班级实体添加属性ClassNumber:

接着添加学生(Student)实体:

最后建立班级和学生的关联(一对多的关系):

两个实体的关系图如下图所示:

然后选中实体全部,单击右键 选择生成数据库:

选择在哪个服务器上面的数据库建表,以及表的名称:

选择“是”,然后点击下一步:

最后会在VS中生成sql脚本,然后执行sql脚本会自动在数据库中建表:

生成的表如下:

表中的实体如下图所示:

  关于ModelFirst如果修改实体数据,我们可以使用EF机制来进行修改,然后同步数据库,但是如果修改某个字段呢,使用ModelFirst修改,然后生成sql脚本重新生成表(前提是数据库中的数据备份好,否则会清空),还是在数据库中直接修改字段,然后使用DBFirst生成实体呢?还有待于研究,大家也可以踊跃拍砖!

时间: 2024-10-11 17:57:32

EF之ModelFirst实体先行的相关文章

【EF】ModelFirst实体优先

一.前言 在前文中我们介绍了DBFirst,它要求要现有数据库, 然后通过EF映射创建实体.非常简单易学.下面给大家介绍另外一种--ModelFirst,实体优先. 二.内容介绍 Model First 是先利用某些工具(如VS的EF设计器)设计出可视化的实体数据模型及他们之间的关系,然后再根据这些实体.关系去生成数据库对象及相关代码文件. 通过实战演练来更好的展示: 三.实战演练 首先打开VS2012 ,选择控制台程序: 图一 选择控制台程序 第一步 添加实体 然后在项目中添加ADO实体模型:

EF里单个实体的增查改删以及主从表关联数据的各种增删 改查

本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表找主表数据) 修改(修改从表的外键) 删除(删除主从表关系.删除主表数据.删除主从表数据.修改从表数据外键) 补充内容 SaveChanges方法提交多次操作 DbSet.Add方法返回当前实体 源码和系列文章导航 注:本章节多次演示了各种删除,要重复查看效果,需要解开注释初始化数据方法. 一.EF

EF之DBFirst数据库先行

   在上篇文章中,宏观的了解了EF的概念和类型,下面就来讲讲关于DBFirst(数据库先行)的详细步骤吧. DatabaseFirst就是围绕数据库为中心的开发方式,使用这种模式我们必须要先设计和创建数据库,然后使用VS在已有数据库的基础上创建ADO.NET实体数据模型,之后就可以在编程的过程中使用EF访问和操作数据库里的数据了,具体的如何使用,下面来看一个很简单的例子. 因为是数据库先行就先来看看高校云平台的数据库吧: 这张表是我做新生入学配置学号的一张表,下面我们来建立一个简单的控制台程序

深入浅出EF之ModelFirst和DBFirst

在上篇博文中,小编主要简单的介绍了一下EF的一些基础知识,其中,小编蜻蜓点水的提了一下ModelFirst和DBFirst,ModelFirst先设计实体,然后根据模型生成数据库,DBFirst根据数据库生成模型,两个方向都是可以了,两个方向可以相互更新,比如新添加了实体,可以根据模型生成数据库,如果在数据库里面新添加了字段,我们可以从数据库更新模型.在介绍ModelFirst和DBFirst之前,我们先来解决两个问题,EF与linq to sql的关系以及为什么使用linq to sql和EF

使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能

在以往的开发过程当中,我会经常选择EF框架作为底层数据结构,EF为我们提供了很好的ado.net数据访问机制,他覆盖了数据链接,linq等多方面内容,而且当我们使用数据库优先或者code first的时候都体现出明显的优势. 一键生成实体,免除手写model的烦恼. 实时更新数据结构,使数据库与model保持高度一致. 提供多种底层数据的访问方法. 优雅的语法,对于我这种喜爱偷懒的程序猿是一大福音. 然而entity framework在vs中生成的.edmx文件,会导致摘要(说明)为空的bug

EF架构~FluentValidation实体检验与实体分离了

回到目录 在MVC,EF,LINQ环境里,我们经常会用到DataModel(DO)和ViewModel(VO),可能对于它们的属性校验我们会采用特性的方式,当然这很直观,就连微软的DEMO也是如些,一般是这样的代码 /// <summary> /// 机构ID /// </summary> [DisplayName("机构ID")] public int AgentId { get; set; } /// <summary> /// 机构名称 ///

EF中的实体类型(EF基础系列篇6)

EF中有两种类型的实体:POCO Entity和dynamic proxy entity. POCO Entity (Plain Old CLR Object) POCO class是一个类,它不依赖任何.NET framework的基类,它就像任何其他的普通类一样,这也是为什么被称之为“Plain Old CLR Object”的原因: 这些由实体数据模型生成的POCO实体支持大多数的增删查改的功能.下面是一个Studnet POCO实体: public class Student { pub

EF6基础系列(五)---EF中的实体关系

这一节将总结EF是怎么管理实体之间的关系.EF与数据库一样支持三种关系类型:①一对一 ,②一对多,③多对多. 下边是一个SchoolDB数据库的实体数据模型,图中包含所有的实体和各个实体间的关系.通过设计器我们很容易看出实体间的对应关系 1.一对一 如上图,Student和StudentAddress具有一对一的关系(零或一).一个学生只能有一个或零个地址.实体框架将Student实体导航属性添加到StudentAddress实体中,将StudentAddress实体导航属性添加到Student

关于ef core 将实体类生成到类库 , 将appsettings.json生成到debug目录下

将ef  core 实体类生成到 standard 类库里  如图debug下  找不到appsettings.json 配置文件 在csproj中加入 <ItemGroup> <Content Update="appsettings.json"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> </ItemGroup> appset