CodeFirst迁移注意点
Context构造函数
不检查__MigrationHistory 取消当数据库模型发生改变时删除当前数据库重建新数据库的设置。
Database.SetInitializer<Context>(null);
重新创建数据库
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<PortalContext>());
重建数据库运行,生产环境此法严禁使用。
迁移方法1:
AutomaticMigrationsEnabled=true;自动迁移
Enable-Migrations 启用迁移
Add-Migration 为挂起的Model变化添加迁移脚本
Update-Database 将挂起的迁移更新到数据库
Update-Database -Verbose 将模型更新到数据库中并显示更新脚本,将更新脚本复制下来在生产环境中运行
Get-Migrations 获取已经应用的迁移
AutomaticMigrationsEnabled=false;非自动迁移
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称
上面五个参数是解决问题必须的,其它的无关紧要。
例如:
Enable-Migrations -ContextTypeName "MVCCodeFirst.BlogEntities" -ProjectName "MVCCodeFirst" -StartUpProjectName "MVCCodeFirst" -ConnectionStringName "BlogEntities" -Verbose
依次填好之后,问题解决。
同样的在Add-Migration、Update-Database的时候也需要填写相应的参数。否则会出现同样错误。
例如:
Add-Migration -Name "EditCST_DevicePhoto" -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose
Update-Database -Script -ProjectName "DBAccessLib" -StartUpProjectName "WebSite" -ConnectionStringName "TJSSDBContext" -Verbose
迁移方法2:
生产环境中__MigrationHistory表删除,将生产环境中的表与模型更新成一致。
最新文章
- Oracle_R12C_安装注意点_Win64_exectask
- docker网络配置方法总结
- 绘制 ToggleButton --重写view
- http应用优化和加速说明-负载均衡
- Python中的__init__和__new__介绍
- C# Winform实现炫酷的透明动画界面
- The first gui program by Qt
- Div里面载入另一个页面的实现(取代框架)(AJax)
- solr排序问题
- appium+python搭建自动化测试框架_TestAPP框架(三)
- Codeforces 446A. DZY Loves Sequences (线性DP)
- sublime text2 安装及使用教程
- 如何理解render: h =>; h(App)
- php通过CURL模拟get提交请求
- Python操纵Excel,数据库
- Web前端入门教程之浏览器兼容问题及解决方法
- Online handwriting recognition using multi convolution neural networks
- Java中equals和==的解析
- 解决";此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站";的问题
- HDU 4514 湫湫系列故事――设计风景线 (树形DP)
热门文章
- OpenCV(图像处理)—访问像素的三种方法
- Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this scrip
- python 调试方法
- IG—金字塔
- phpstrom+xdebug配置
- filter 死循环(tomcat 启动完成 ,自动执行filter.dofilter,导致tomcat 启动超时) , tomcat 启动和 servers 启动 不同
- Python鸭子类型思想
- java如何实现以数据流的形式下载压缩包到本地?
- 2018.07.01 洛谷小B的询问(莫队)
- 2018.09.02 Atcoder Regular Contest 102简要题解