C#+EntityFramework编程方式详细之Model First
Model First
Model First模式即“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在VS中通过设计对应的数据模型来生成数据库和数据类。
为了与上篇的Code First加以区分,这里新建一个控制台程序EFTest1,然后添加新建项,选择 ADO.NET实体数据模型,名称输入EFDemoDBModel

点击添加

选择 空EF设计器模型 点击完成。然后在模型设计视图中,空白处右键,添加新实体学生类(Student)和科目成绩类(SubjectScore)


点击 确定,之后在

添加其他标量属性:Name和Age(Age为Int32类型,可选中它在属性中修改);同样的方式添加第二个实体SubjectScore,并添加SubCode和SubName属性:

下面添加二者之间的关系,Student和SubjectScore是一对多的关系,Student可以通过SubjectScores属性访问SubjectScore实体,并且添加了一个外键约束到SubjectScore中:
点击空白处,右键新增---关联



经过上述操作,到目前为止Model First中的Model已经创建结束,下面就需要生成到数据库了,在模型设计视图空白处选择“根据模型生数据库(G)…”:(这里是系统默认的master数据库,可根据自己需求更改,新建连接更换数据库)



下一步

下一步,
生成数据库界面,点击完成。
点击完后之后,会打开数据库脚本,有一个对话框弹出,询问时候执行脚本,点击是即可生成数据库,
脚本:

在模型保存后,生成了数据库上下文和实体类,并且打开了建表的脚本:

说明:如果没有上述界面的话,看看模型是否保存了,点击保存,就会有了,
如果数据库中表没有生成的话,打开脚本,点击左上加的执行按钮,执行即可,之后再到数据库刷新一下,即可

数据库

经过上述操作,数据库和实体类已经全部新建完毕。
下面我们就测试一下看看,如下

注意
如果出现下面的情况,就需要在EFDemoDBModelContainer中添加DbSet<Student>,DbSet<SubjectScore>

出现上述问题,那是因为,EFDemoDBModelContainer中没有生成DbSet<Student>,DbSet<SubjectScore>,所以要手动添加
如下:

这样EFDemoDBModelContainer中才能找到Students和SubjectScores
运行结果

注意:如果我们的模型发生改变,只需要在模型设计视图中修改模型,然后保存此时实体类就会相应改变,最后在重新在模型设计视图空白处选择“根据模型生数据库(G)…”,再重新执行生成的脚本即可。
C#+EntityFramework编程方式详细之Model First的更多相关文章
- C#+EntityFramework编程方式详细之Code First 数据迁移
在前几篇的C#+EntityFramework编程方式中介绍了C#+EntityFramework编程方式Code First ,Model First以及Dtatabase First 等编程方式, ...
- C#+EntityFramework编程方式详细之Database First
Database First “Database First”模式即“数据库优先”,其实Database First 与Model First 很类似,只不过一个是有数据可一个是创建数据库,具体的操作 ...
- C#+EntityFramework编程方式详细之Code First
Code First Code First模式即“代码优先”模式,是从EF4.1开始新建加入的功能.使用Code First模式进行EF开发时只需要编写对应的数据类,然后自动生成数据库. Code F ...
- EF三种编程方式详细图文教程(C#+EF)之Code First
Code First Code First模式我们称之为“代码优先”模式,是从EF4.1开始新建加入的功能.使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的 ...
- EF三种编程方式详细图文教程(C#+EF)之Database First
Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下 ...
- EF三种编程方式详细图文教程(C#+EF)之Model First
Model First Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在V ...
- EF三种编程方式的区别Database first ,Model first ,code first
首先对于EF中先出现的datebase first和model first两种编程方式,其的区别根据字面意思很容易能够理解. datebase first就是代表数据库优先,那么前提就是先创建数据 ...
- Entity Framework 5.0系列之EF概览-三种编程方式
概述 在开发面向数据的软件时我们常常为了解决业务问题实体.关系和逻辑构建模型而费尽心机,ORM的产生为我们提供了一种优雅的解决方案.ADO.NET Entity Framework是.NET开发中一种 ...
- ASP.NET MVC下的四种验证编程方式[续篇]
在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注Validation ...
随机推荐
- openstack搭建之-neutron配置(11)
一.base节点设置 mysql -u root -proot CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neutron.* TO 'neutr ...
- 布局无法发送,布局发布状态停留在“Transferring”,进度停留在 0%
按顺序检查如下: 1. 检查Player是否在线?不在线则无法发送任何内容,进度会停留在0%,待Player下次在线时,任务自动开始传输. Player在线,Messenger上可以看到Player名 ...
- 使用IDEA2017在Windows下编程并测试Hadoop2.7+Spark2.2+Azkaban
1. 下载好IDEA HADOOP SPARK 首先,配置IDEA, 在插件管理中使用IDEA在线库安装scala插件, 在在线库直接搜索即可; 其次,配置Maven选项, 将Maven添加到IDEA ...
- MySQL单向加密函数
select encode('pual','zhangxueliang'); select md5('zhangxueliang'); 加密为null,不显示字段值: select ENCRYPT(& ...
- centos7 docker安装
Docker分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施.容器.插件等 社区版按照stable和edge两种 ...
- Android——图片轮播
Android技术——轮播功能 轮播需要什么? 答:实现图片与广告语展示.循环播发以及手动切换.支持加载本地与网络图片. 性能优化? 答:多张图片与指示器展示.自动与定时.循环播发.滑动流畅并且无卡顿 ...
- 深入理解JVM(4)——对象的创建和访问
1.对象的创建 在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已. 在虚拟机中,对象(文中讨论的对象限于普通 Java 对象,不包括数组和 Class 对象等)的创建过程如下 ...
- 联想的笔记本有隐藏分区 导致无法安装win10 eufi启动 报错:windows无法更新计算机的启动配置。无法安装
联想的笔记本都带着类似一键还原等的系统恢复软件,这些软件往往是将出厂设置备份在单 独的一个分区,此分区默认为隐藏,在 Windows 的磁盘管理中可以看到.打开磁盘管理器 的方法是右击计算机——管理, ...
- Apache Flink:特性、概念、组件栈、架构及原理分析
2016-04-30 22:24:39 Yanjun Apache Flink是一个面向分布式数据流处理和批量数据处理的开源计算平台,它能够基于同一个Flink运行时(Flink Runtim ...
- Springboot 3.需求携带参数的get请求
还是拿来上节讲的代码: package com.course.server; import org.springframework.web.bind.annotation.*; import java ...