此处采用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模式创建数据库并实现增删改查功能的更多相关文章

  1. MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查

    MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查 本文的目的:   1.MVC3项目简单配置EF code first生成并初始化数据 ...

  2. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  3. 【设计模式】【应用】使用模板方法设计模式、策略模式 处理DAO中的增删改查

    原文:使用模板方法设计模式.策略模式 处理DAO中的增删改查 关于模板模式和策略模式参考前面的文章. 分析 在dao中,我们经常要做增删改查操作,如果每个对每个业务对象的操作都写一遍,代码量非常庞大. ...

  4. EntityFramework使用Code First模式创建数据库控制生成单数形式的表名

    使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...

  5. Entity Framework应用:根据实体的EntityState状态实现增删改查

    在上一篇文章中,我们讲解了使用EF实现简单的增删改成,在这篇文章中我们使用实体的EntityState状态来优化数据的增删改查. 一.修改数据 上篇文章中的修改数据的方法是EF官方推荐的方式,即先查询 ...

  6. 使用Entity Framework通过code first方式创建数据库和数据表

    开发环境 WIN10 Entity Framework6.0  MVC5.0  开发工具 VS2015  SqlServer2012 1.创建上下文Context继承DbContext,并创建其他的业 ...

  7. (转载)EF 使用code first模式创建数据库和 填充种子数据

    第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html 第二篇:来自 JustYong 博主的文章:htt ...

  8. MVC模式:实现数据库中数据的增删改查功能

    *.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...

  9. (菜鸟要飞系列)三,基于Asp.Net MVC5的后台管理系统(用户的增删改查功能)

    这些天被项目,考试整昏了头脑,没时间更新,我已经将这一部分全部做完了,现在把代码放上来,大家可以自己研究,有问题可以私聊,这里把图放上来 http://download.csdn.net/detail ...

随机推荐

  1. Java web切面编程

    在我们的 web开发中  我们在 对公用的 一些方法 我们需要抽取出来   这样达到 代码的冗余   今天 我利用项目上用的AOP的 实际 应用做了一个整理 首先  xml配置  扫描 <?xm ...

  2. Windows Server 2012 R2 官方原版镜像

    微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作系统,其核心版 ...

  3. 复制粘贴之插件(clipboard.min.js)不需要安装flash

    <!DOCTYPE html> <html> <head> <title>ZeroClipboard Test</title> <me ...

  4. HttpServletRequest对象

    一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...

  5. 【BZOJ2154】Crash的数字表格(莫比乌斯反演)

    [BZOJ2154]Crash的数字表格(莫比乌斯反演) 题面 BZOJ 简化题意: 给定\(n,m\) 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 以下的一切都 ...

  6. eclipse 精确查询

    ---恢复内容开始--- ctrl+H(一般都是这个,如果无效看你的自定义快捷键) 输入\b 查询的字符串 \b   后面的正则表达式选框必须选

  7. 检测flash是否安装及版本号

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 【Spring源码分析】原型Bean实例化过程、byName与byType及FactoryBean获取Bean源码实现

    原型Bean加载过程 之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式: & ...

  9. eclipse 中启动Tomcat超时了错误

    修改E:\eclipse\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\servers.xml 将 start-ti ...

  10. Unity3D UGUI强制刷新Layout(布局)组件

    UGUI的Layout布局组件确实节省了我们很多代码 如果不使用Layout组件 那么光在计算UI的布局上就要花费很大的功夫 特别是动态生成其组件的时候 当然,Layout组件在大多数时候是非常好用的 ...