1.新建一个类库项目

2.右键管理Nuget程序包,搜索EntityFramework.然后安装

3.新建一个类,然后引用 using System.Data.Entity; 然后写类初始化方法(base中的字符串为数据库的配置名称)

4.在App.config中添加数据库链接配置(注意:该配置放在主项目中,此项目为类库项目不能直接运行,所以此配置放在主项目中,若放在该类库项目中

则初始化时会从主项目中寻找该配置.而主项目没有的话则会生成到vs默认的本地数据库).

5.然后点击工具->nuget包管理器->程序包管理器控制台执行 enable-migrations –EnableAutomaticMigration:$true

之后会自动创建一个继承自DbMigrationConfiguration类的Configuration类.并修改一个默认属性

6.新建一个类,创建完之后在自己创建的DbContext类(第三步)中添加对应的类的信息.

7.CodeFirst有两种创建更新数据库的方式分别是自动和控制台

  自动

    1.自动合并更新配置在第五步中的两个属性中的第一个自动更新属性配置为True了;

2.调用 Database.SetInitializer(new MigrateDatabaseToLatestVersion<CodeFirstDbContext, CodeFirst.Migrations.Configuration>());

    (此处放在主项目的Global.asax.cs  ->  Application_Start ()方法中.这样只会执行一次跟新合并数据库)

    3.实例化CodeFirstDbContext.并执行查询

      using (var ctx = new CodeFirstDbContext())

      {
        var studentName = ctx.Database.SqlQuery<User>("Select * from Users where id=@id", new SqlParameter("@id", 1))
        .ToList();
      }

    此处执行完毕之后数据库才会合并跟新,如不实例化并查询.并不会合并更新数据库

  控制台

  1-Add-Migration FirstInit

    2.Update-Database

    ① updata-database [-verbose]

      在程序包控制台中执行这条命令时,会执行Add-Migration命令创建的最新的迁移文件,并更新数据库

      执行完上边三步数据库就生成了,以后当我们修改实体类时,执行Add-Migration [MigName]后再执行Update-Database [-verbose],就可方便地根据模型的变化更新数据库。

    ② update-database -TargetMigration:xxx

    如果我们想回退到某一个版本时执行:

  update-database -TargetMigration:FirstInit//数据库回退到第一次的版本

转载于:https://www.cnblogs.com/yan0720/p/11046850.html

使用CodeFirst创建数据库相关推荐

  1. EF使用CodeFirst创建数据库和表

    EF支持三种实体模型:Code First,Model First和DB First,分别表示代码优先,模型优先和数据库优先.目前就个人来说使用CodeFirst最多,对此相对比较熟悉,先写下Code ...

  2. EF CodeFirst 如何通过配置自动创建数据库当模型改变时

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧 ...

  3. 使用CodeFirst创建并更新数据库

    本文主要介绍如何使用CodeFirst模式来新建并更新数据库 在使用Entity Framwork的三种方式(ModelFist.DBFirst.CodeFirst)中,CodeFirst方式书写的代 ...

  4. c 创建mysql实体模型_EntityFrameworkCore 根据实体类自动创建数据库

    1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1   Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...

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

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

  6. c 自动生成mysql表结构_EntityFrameworkCore 根据实体类自动创建数据库

    1.首先新建 Asp.Net Core WebApi 项目 2.添加一下引用 : 2.1   Pomelo.EntityFrameworkCore.MySql(我用的Mysql 根据自己情况引用就行) ...

  7. 创建数据库,指定数据库的字符集和编码顺序

    创建数据库,指定它的字符集和编码顺序 create database {数据库名称} CHARACTER SET {字符集} COLLATE {排序规则} 举例: create database co ...

  8. Mysql创建数据库用户

    Mysql为数据库创建用户 通常情况下我们在编写代码的过程中(也就是在开发过程中),一直使用的是我们本地的mysql,而且用户都是root用户,最高权限的用户,但是我们如果在公司上班的时候,公司的领导 ...

  9. ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

    在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener ...

最新文章

  1. 一个循环、一个变量打印乘法口诀
  2. ExtJs六(ExtJs Mvc首页展示)
  3. deepin linux字体设置,在deepin系统中如何安装系统字体? - Deepin深度系统用户手册...
  4. Java基于POI动态合并单元格
  5. 《普罗米修斯/异形前传》[BD-RMVB.720p.中英双字][2012年科幻]
  6. 如何应对未过试用期的技术人员离职
  7. 数字通信计算机仿真课程总结,最新燕山大学数字通信计算机仿真课程设计报告模板.docx...
  8. 零一背包问题(一维列表逆序的解释)
  9. 【Druid】Druid连接池(二)——配置监控界面
  10. 【数据结构】-括号匹配
  11. Dockerfile 构建python环境
  12. 什么是冲突域?如何解决冲突?
  13. 如何从零开始搭建服务器
  14. Scratch(七):圣诞节快乐!
  15. html网页自动回复,js 简单对话框(自动回复)
  16. 新一代记事本“Notepad++”个性化设置备份
  17. 上海宽泛计算机招聘,2022上海市公务员考试职位表
  18. 三菱FX系列PLC和台达ASDA-B2伺服驱动器位置控制接线和程序示例
  19. 1018:其他数据类型存储空间大小
  20. 深圳市平均工资(1979-2017)

热门文章

  1. linux 下安装adobe flash的关键。
  2. UIView的layoutSubviews和drawRect
  3. 在vs2008工程中制作cab包
  4. 《更友好的网站url设计》
  5. 跟我一起学jQuery——第二集(未完待续..)
  6. 《黑客与画家》初读笔记
  7. 设计一个60T数据仓库及大数据分析平台,医院数字化该怎么做?
  8. 有一列数列,1,11,21,1211,111221,.........,
  9. 关于数据分析的4点心得:维度、指标、KPI
  10. 查看sql_一键查看Oracle数据库当前SQL_WORKAREA_ACTIVE的相关操作