使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能
此处采用VS2017+SqlServer数据库
一、创建项目并引用dll:
1.创建一个MVC项目
2.采用Nuget安装EF6.1.3
二、创建Model
在models文件夹中,建立相应的model文件,这里建立的class名,就是数据库里表的名字。
在这里面,可以建立表之间的关系,本次将建立Course(课程)、Student(学生)、StuCourse(课程学生关系)来作为一个Demo
[Table("t_course")] //可以通过Attribute的形式修改自动生成的表名,否则将生成courses复数形式的表
public class Course
{
public int ID { get; set; }
[Required]
public string course_Name { get; set; }
public string course_code { get; set; }
public virtual ICollection<StuCourse> StuCousers { get; set; }
}
public class Student
{
public int ID { get; set; }
[Required]
[MaxLength(10)]
public string stu_Name { get; set; }
public string stu_Pwd { get; set; }
public string stu_sex { get; set; }
public int stu_age { get; set; }
public virtual ICollection<StuCourse> StuCousers { get; set; }
}
public class StuCourse
{
public int ID { get; set; }
public int StudentID { get; set; }
public int CourseID { get; set; }
public virtual Student Student { get; set; }
public virtual Course Course { get; set; }
}
三、新建一个Dal文件夹,用来建立Database Context
public class EFDBContext:DbContext
{
public EFDBContext() : base("EFDBContext") //数据库链接的Web.config中结点名字
{
}
public virtual DbSet<Student> Students { get; set; }
public virtual DbSet<Course> Courses { get; set; }
public virtual DbSet<StuCourse> StuCouse { get; set; }
}
四、配置数据库连接信息
在WebConfig文件中增加connectionStrings节点,填写数据库连接信息,此处是我本机所装的sql server,提前建好的Database:CodeFirst
注意此节点的位置,不能放在第一,否则会报错。

五、生成数据库迁移文件,并更新DB
1.工具 -> 库程序包管理器 -> 程序包管理器控制台
2.运行命令 Enable-Migrations,
这时候,你会发现在程序端多出一个文件夹叫Migrations,这里面有一个Configuration.cs文件
3.运行命令Add-Migration,此命令会在Migrations文件下新增一个数据库迁移文件,文件内容为创建或修改数据库的表的代码
4.运行命令Update-Database 或Update-Database -Force,执行最新数据库迁移文件,更新DB中的表信息

在创建好表之后要修改表很简单,直接修改Model,然后执行Add-Migration,会自动产生一个数据库迁移文件,在执行Update-Database就会更新数据库中的表了;
还有一种方式可以开启自动迁移,修改Migrations文件夹下Configuration,将AutomaticMigrationsEnabled的值修改为true即可,这样一来再修改Model后就可以直
接执行Update-Database命令来更新DB了

六、创建Control并实现增删改查功能(EntityFramework的脚手架会自动根据Model帮我们生成增删改查功能及View,而且还自带Bootstrap样式)
1.添加Control并选择包含视图的MVC5控制器

2.下拉框选择创建模型类和数据库上下文类

点击添加出现如下弹出框就开始自动生成增删改查页面及相应功能

可以看到Controller和Views文件夹帮我们生成了如下文件:

3.更改RouteConfig文件,设定Students的Index为默认启动项

4.运行程序结果如下,此时增删改功能已经可以正常使用

使用MVC5+Entity Framework6的Code First模式创建数据库并实现增删改查功能的更多相关文章
- MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查
MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查 本文的目的: 1.MVC3项目简单配置EF code first生成并初始化数据 ...
- Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)
JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式 (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...
- 【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查
原文:使用模板方法设计模式.策略模式 处理DAO中的增删改查 关于模板模式和策略模式参考前面的文章. 分析 在dao中,我们经常要做增删改查操作,如果每个对每个业务对象的操作都写一遍,代码量非常庞大. ...
- EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...
- Entity Framework应用:根据实体的EntityState状态实现增删改查
在上一篇文章中,我们讲解了使用EF实现简单的增删改成,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查. 一.修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询 ...
- 使用Entity Framework通过code first方式创建数据库和数据表
开发环境 WIN10 Entity Framework6.0 MVC5.0 开发工具 VS2015 SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...
- (转载)EF 使用code first模式创建数据库和 填充种子数据
第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html 第二篇:来自 JustYong 博主的文章:htt ...
- MVC模式:实现数据库中数据的增删改查功能
*.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...
- (菜鸟要飞系列)三,基于Asp.Net MVC5的后台管理系统(用户的增删改查功能)
这些天被项目,考试整昏了头脑,没时间更新,我已经将这一部分全部做完了,现在把代码放上来,大家可以自己研究,有问题可以私聊,这里把图放上来 http://download.csdn.net/detail ...
随机推荐
- HTML5结合CSS的三种方法+结合JS的三种方法
HTML5+CSS: HTML中应用CSS的三种方法 一.内联 内联样式通过style属性直接套进HTML中去. 示例代码 <pstylepstyle="color:red" ...
- css 超出规定行数自动隐藏
单行overflow: hidden;text-overflow: ellipsis;white-space: nowrap; 多行(兼容各个浏览器)//通过覆盖最后几个字的形式p{positio ...
- OpenGL shader渲染贴图
simple.vert #version core layout (location = ) in vec3 position; layout (location = ) in vec3 color; ...
- 描述Spring Web MVC的工作流程
Spring Web MVC的共工作流程如下: 1.浏览器发出Spring mvc请求,请求给前端控制器 DispatcherServlet处理. 2.控制器通过HandlerMapping维护的请求 ...
- 【BZOJ1030】文本生成器(AC自动机,动态规划)
[BZOJ1030]文本生成器(AC自动机,动态规划) 题面 BZOJ 题解 超级简单良心送分题 很明显是所有状态-不合法状态 合法状态就是\(26^m\) 不合法状态做一个\(dp\)就好 #inc ...
- THUWC2018滚粗记
THUWC2018滚粗记 前言 又是一篇滚粗记, 不过可能还要写过很多很多篇滚粗记, 才会有一篇不是滚粗记的东西啦 总而言之,我现在还是太菜了 还要过一大段时间我才会变强啦 Day -inf 联赛考完 ...
- 【NOIP2015】子串(动态规划)
题目戳我 题解 很简单的一道题... 看来那时候还是我太菜了... 设f[i][j][k][0/1]表示在第一个串中的位置i,匹配到了位置j,一共分了k段,0/1表示上一个位置是否在某一段中 转移就很 ...
- 【USACO4.2】草地排水Drainage Ditches(最大流)
题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...
- [HAOI2010]软件安装
简单的tarjan+(本蒟蒻刚刚接触不久)恶心的树形DP 题面 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为 ...
- xctf的一道题目(77777)
这次比赛我没有参加,这是结束之后才做的题目 题目链接http://47.97.168.223:23333 根据题目信息,我们要update那个points值,那就是有很大可能这道题目是一个sql注入的 ...