EF 的一些不常用的功能
1.Add-Migration Initia-IgnoreChanges 生成已有数据库初始化代码
2.update-database -verbose 升级数据库并显示sql语句
3.Update-Database -Script -SourceMigration:"201309201643300_AddCity.cs" -TargetMigration:"201309201708043_ModifyCity.cs" 这个是生成两次迁移的sql语句,TargetMigration省略是到最新
4.simplemembership的数据库没有migration表 所以迁移的时候如果丢失了迁移类会很麻烦,建议手工修改即可。
5.context的静态构造函数中可以设置数据库初始化器(用于调试)
static PortalContext() { Database.SetInitializer<PortalContext>(null); //DropCreateDatabaseIfModelChanges //CreateDatabaseIfNotExists //DropCreateDatabaseAlways //MigrateDatabaseToLatestVersion }
6.Get-Migrations 获取已经应用的迁移
7.Enable-Migrations
在Package Manager Console中执行Enable-Migrations启动迁移。
执行get-help Enable-Migrations –detailed 查看Enable-Migrations的详细用法。
-ContextTypeName 指定要使用的Context
-EnableAutomaticMigrations 启动自动迁移
-ProjectName 指定搭建的迁移类添加到的项目
-StartUpProjectName 指定使用的配置文件所在的项目
-ConnectionStringName 指定使用配置文件中连接字符串的名称
-ConnectionString 指定使用的连接字符串
-ConnectionProviderName 指定连接字符串的provider名称
8.Add-Migration
在Package Manager Console中执行Add-Migration搭建挂起的Model变化迁移脚本。
执行get-help Add-Migration –detailed查看Add-Migration的详细用法。
-Name 指定自定义脚本的名称
-Force
-ProjectName
-StartUpProjectName
-ConfigurationTypeName 指定使用的迁移配置
-IgnoreChanges 忽略检测到挂起的model改变,创建一个空的迁移。这个选项可用来为已有的数据库启用迁移创建一个初始的,空的迁移。
-ConnectionStringName 指定使用配置文件中连接字符串的名称
-ConnectionString 指定使用的连接字符串
-ConnectionProviderName 指定连接字符串的provider名称
9.Update-Database
在Package Manager Console中执行Update-Database将挂起的迁移更新到数据库。
执行get-help Update-Database -detailed查看Add-Migration的详细用法。
-SourceMigration 只有-Script打开时才有效。指定迁移的名称用作更新的起点。忽略则使用最后一次应用的迁移。
-TargetMigration 指定将数据库更新到哪个迁移的名称。
-Script 生成SQL脚本
-Force
-ProjectName
-StartProjectName
- ConfigurationTypeName
-ConnectionStringName 指定使用配置文件中连接字符串的名称
-ConnectionString 指定使用的连接字符串
-ConnectionProviderName 指定连接字符串的provider名称