EF的CodeFirst模式自动迁移(适用于开发环境)
EF的CodeFirst模式自动迁移(适用于开发环境)
1、开启EF数据迁移功能
NuGet包管理器------>程序包管理控制台---------->Enable-Migrations

2、数据库上下文设置为迁移至最后一个版本
MigrateDatabaseToLatestVersion<数据库上下文,迁移配置文件>
using Models.Migrations; namespace Models
{
public class AppDBContext : DbContext, IDisposable
{
static AppDBContext()
{
Database.SetInitializer<AppDBContext>(new MigrateDatabaseToLatestVersion<AppDBContext, Configuration>());
} public AppDBContext()
: base("DefaultConnection")
{
Database.Log = GetLog; //获取EF执行的sql
} /// <summary>
/// 释放资源
/// </summary>
public new void Dispose()
{
base.Dispose();
GC.SuppressFinalize(this);
} /// <summary>
/// 析构函数
/// </summary>
~AppDBContext()
{
base.Dispose();
} private void GetLog(string sql)
{
//日志输出到控制台
System.Diagnostics.Debug.Write(sql);
} protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//解决EF动态建库数据库表名变为复数问题
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
} }
3、设置迁移配置文件,允许自动迁移和允许迁移时数据丢失(只适用于开发环境)
namespace Models.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq; internal sealed class Configuration : DbMigrationsConfiguration<Models.AppDBContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
ContextKey = "Models.AppDBContext";
} protected override void Seed(Models.AppDBContext context)
{
// This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data.
}
}
}
实体变动,不再需要手动迁移,数据库将自动更新,AutomaticMigrationDataLossAllowed 设置为true迁移可能导致数据丢失
EF的CodeFirst模式自动迁移(适用于开发环境)的更多相关文章
- EF Core CodeFirst数据库自动迁移
开发过程中都会遇到数据库数据结构更新的问题,怎么对数据库更新进行版本控制呢? 不同的项目对数据库版本更新控制的方式不同,常用的有第三方Evolve,开发人员将数据库更新脚本按照版本号的放在一起,然后执 ...
- 第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移
一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略: 1. CreateDatabaseIfNotExists:EF的默认策略,数据库不存在,生成数据库:一旦model发生变 ...
- asp.net mvc CodeFirst模式数据库迁移步骤
利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了. 但是,我有新的类要加入,有字段需要修改,那怎么办呢,删库,跑路 ? 哈哈 利用数据库迁 ...
- yarn cluster和yarn client模式区别——yarn-cluster适用于生产环境,结果存HDFS;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出
Yarn-cluster VS Yarn-client 从广义上讲,yarn-cluster适用于生产环境:而yarn-client适用于交互和调试,也就是希望快速地看到application的输出. ...
- Angular01 利用grunt搭建自动web前端开发环境、利用angular-cli搭建web前端项目
搭建angular开发环境 一.下载并安装node 官网地址:点击前往 二.利用npm安装cnpm 安装好node后就可以使用npm命令啦 查看版本:npm -v 安装cnpm:npm install ...
- 第十五节: EF的CodeFirst模式通过DataAnnotations修改默认协定
一. 简介 1. DataAnnotations说明:EF提供以特性的方式添加到 domain classes上,其中包括两类: A:System.ComponentModel.DataAnnota ...
- 第十六节: EF的CodeFirst模式通过Fluent API修改默认协定
一. 简介 1. 优先级:Fluent API > data annotations > default conventions. 2. 所有的Fluent API配置都要在 OnMode ...
- MVC5+EF6+MYSQl,使用codeFirst的数据迁移
之前本人在用MVC4+EF5+MYSQL搭建自己的博客.地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在glob ...
- 熟悉linux开发环境(实验)
北京电子科技学院(BESTI) 实验报告 课程: 深入理解计算机系统 班级: 1353班 姓名:张若嘉 杨舒雯 学号:20135330 20135324 成绩: 指导教师:娄嘉鹏 实验日期:2015. ...
随机推荐
- 爬虫--工具安装Jupyter anaconda
anaconda https://www.anaconda.com/download http://docs.anaconda.com/anaconda/user-guide/getting-star ...
- redis cluster集群web管理工具 relumin
redis cluster集群web管理工具 relumin 下载地址 https://github.com/be-hase/relumin 只支持redis cluster模式 java环境 tar ...
- asp.net core的docker实践
如果centos中没有安装和docker和.net core镜像,先安装docker和asp.net core 镜像 安装dockeryum -y install docker-io 启动 Docke ...
- 项目实战安装工具箱Busybox
1.Busybox是一个集成了100多个最常用Linux命令的软件工具箱,他在单一的可执行文件中提供了精简的UNIX工具集.该工具箱中包含了常见简单实用的工具如cat.echo.grep.find.m ...
- Lombok(1.14.8)的简单示例
分享自: http://blog.csdn.net/huey2672/article/details/42240985 Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长,尤其 ...
- 120分钟React快速扫盲教程
在教程开端先说些题外话,我喜欢在学习一门新技术或读过一本书后,写一篇教程或总结,既能帮助消化,也能加深印象和发现自己未注意的细节,写的过程其实仍然是一个学习的过程.有个记录的话,在未来需要用到相关知识 ...
- maven -maven.test.skip skipTests
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下. -Dmaven.test.skip=true,不执行测试用例,也不编译测试 ...
- linux下xdebug的安装和配置方法
xdebug简介 Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. xdebug安装 首先让php错误显示,只需要修改php.in ...
- js------保留指定位数小数
// tofix.js文件// params// val: 要处理的数据,Number | String// len: 保留小数位数,位数不足时,以0填充// side: 1|-1 对应 入|舍exp ...
- [转]window7下利用DockerToolbox安装Docker
本文转自:https://blog.csdn.net/qq2712193/article/details/54576313 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...