博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF 数据迁移
阅读量:4698 次
发布时间:2019-06-09

本文共 1155 字,大约阅读时间需要 3 分钟。

 问 题

支持“AppContext”上下文的模型已在数据库创建后发生更改。请考虑使用 Code First 迁移更新数据库

 原因以及解决办法

 在用EF CodeFirst模式开发当中难免会对类进行修改,修改后再次运行就会出现异常,提示上下文的模型已在数据库创建后发生改变。

 如果是项目初期开发倒是好办,可以删掉数据库重新建立,但是如果项目已经运行了,我想你不会想初期那样做吧,会照成数据丢失的。这个时候就需要使用EF的数据迁移功能了,下面教你如何使用数据迁移。

 打开VS,工具>库程序包管理器>程序包管理器控制台。

 在控制台中输入Enable-Migrations(不分大小写)。

 输入这个命令后还会在项目中创建Migrations文件夹,里面包含两个文件

 1:Configuration.cs  这个类允许你自己配置对AppContext上下文迁移的行为。比如添加一些数据的初始化操作。

 2:201403310555286_InitialCreate.cs,这个文件名是由 时间戳+下划线+ Initial.cs组成的,这个类包含了创建数据库架构的代码。

 生成和运行迁移

执行“Add-Migration FirstMigration”命令,添加一个名为FirstMigration的迁移

执行“Update-Database”命令,更新数据库架构

另外,如果我们要对指定的项目进行数据迁移,我们只需要在命令后指定项目名称就行了,例如:

Enable-Migrations -ProjectName DemoWeb

Add-Migration FirstMigration -ProjectName DemoWeb

Update-Database -ProjectName DemoWeb

如果更新数据库存在冲突而不能执行更新,可以添加 -Force强制执行,例如:“Update-Database -Force”

 

设置自动迁移
namespace Demo.Data.Migrations  {      internal sealed class Configuration : DbMigrationsConfiguration
{ public Configuration() { AutomaticMigrationsEnabled = true; AutomaticMigrationDataLossAllowed = true; } } }

 

转载于:https://www.cnblogs.com/wywnet/p/4043485.html

你可能感兴趣的文章
postgresql-int,bigint,numeric效率测试
查看>>
PHP 实现定时任务的几种方法
查看>>
poj 3630 Phone List trie树
查看>>
mongo 主从数据不同步
查看>>
nodejs之async异步编程
查看>>
caffe的运行create_data.sh前对VOC2007图片格式的更改
查看>>
train_val.prototxt文件和deploy.prototxt文件开头的区别
查看>>
部署 dashboard 插件
查看>>
hdu 2191 (多重背包二进制优化)
查看>>
C#中,当从数据库中查询到数据,以DataTable类型返回后,如果需要对DataTable中的数据进行筛选,可以选择下面的方式...
查看>>
19_01访问权限修饰符
查看>>
fragment+tabhost与viewpager
查看>>
RabbitMQ学习笔记(3)----RabbitMQ Worker的使用
查看>>
用于处理分数的Objective-C类
查看>>
Xcode7 无账号真机测试!!
查看>>
Oracle数据安全解决方案(1)——透明数据加密TDE
查看>>
C++ 中list、vector和deque比较[转]
查看>>
Web API系列之三 基本功能实现
查看>>
preventDefault() 方法 取消事件的默认动作
查看>>
frame.origin和frame.size的心得
查看>>