Entity Framework Code First (八)迁移 Migrations
2017-08-29 14:52
337 查看
创建初始模型和数据库
在开始使用迁移(Migrations)之前,我们需要一个 Project 和一个 Code First Model, 对于本文将使用典型的 Blog 和 Post 模型
创建一个新的控制台应用程序 MigrationsDemo;
添加最新的 EntityFramework 到项目
Tools –> Library Package Manager –> Package Manager Console;
运行命令 Install-Package EntityFramework
创建 Blog.cs 和 DbContext 的派生类 BlogContext.cs
更改 Program.cs 以调用
View Code
产生幂等脚本(EF6+)
从 EF6 开始,如果你使用 –SourceMigration $InitialDatabase, 产生的脚本将是幂等的,幂等脚本意味着无论数据库当前处于什么版本/状态,都能升级至最新版本或指定版本(指定 –TargetMigration),生成的脚本包括检查表 __MigrationsHistory 的逻辑以及只更新之前从未更新的
在应用程序启动时自动升级(MigrateDatabaseToLatestVersion初始化器)
当你发布部署应用程序的时候,可能希望当程序启动的时候它自动更新数据库(更新应用任何未更新的迁移),你可以通过注册 MigrateDatabaseToLatestVersion 数据库初始化器来实现这一点,数据库初始化器只包含一些逻辑检查用于确保数据库被正确设置,这个逻辑检查将会在AppDomain 的 context 第一次被使用的时候执行。
当我们创建一个初始化器的实例时,需要指定 context type(BlogContext)以及 migrations configuration (Configuration)- 这个迁移配置类是在我们启用迁移时生成的 Migrations 目录下增加的
原文:http://msdn.microsoft.com/en-us/data/jj591621
在开始使用迁移(Migrations)之前,我们需要一个 Project 和一个 Code First Model, 对于本文将使用典型的 Blog 和 Post 模型
创建一个新的控制台应用程序 MigrationsDemo;
添加最新的 EntityFramework 到项目
Tools –> Library Package Manager –> Package Manager Console;
运行命令 Install-Package EntityFramework
创建 Blog.cs 和 DbContext 的派生类 BlogContext.cs
public class Blog { public int BlogId { get; set; } public string Name { get; set; } }
public class BlogContext : DbContext { public DbSet<Blog> Blogs { get; set; } }
更改 Program.cs 以调用
View Code
产生幂等脚本(EF6+)
从 EF6 开始,如果你使用 –SourceMigration $InitialDatabase, 产生的脚本将是幂等的,幂等脚本意味着无论数据库当前处于什么版本/状态,都能升级至最新版本或指定版本(指定 –TargetMigration),生成的脚本包括检查表 __MigrationsHistory 的逻辑以及只更新之前从未更新的
在应用程序启动时自动升级(MigrateDatabaseToLatestVersion初始化器)
当你发布部署应用程序的时候,可能希望当程序启动的时候它自动更新数据库(更新应用任何未更新的迁移),你可以通过注册 MigrateDatabaseToLatestVersion 数据库初始化器来实现这一点,数据库初始化器只包含一些逻辑检查用于确保数据库被正确设置,这个逻辑检查将会在AppDomain 的 context 第一次被使用的时候执行。
当我们创建一个初始化器的实例时,需要指定 context type(BlogContext)以及 migrations configuration (Configuration)- 这个迁移配置类是在我们启用迁移时生成的 Migrations 目录下增加的
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using MigrationsDemo.Migrations; namespace MigrationsDemo { class Program { static void Main(string[] args) { Database.SetInitializer(new MigrateDatabaseToLatestVersion<BlogContext, Configuration>()); using (var db = new BlogContext()) { db.Blogs.Add(new Blog { Name = "Another Blog " }); db.SaveChanges(); foreach (var blog in db.Blogs) { Console.WriteLine(blog.Name); } } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } } }
原文:http://msdn.microsoft.com/en-us/data/jj591621
相关文章推荐
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- Entity Framework Code First (八)迁移 Migrations
- [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations
- entity Framework codefirst Migrations
- Entity Framework Code First Migrations--EF 的数据迁移
- Entity Framework Code First 迁移
- Entity Framework Code First 迁移
- Entity Framework Code First 多数据库 控制台迁移代码
- entity framework code first migrations
- Entity Framework Code First数据库迁移(DB Migration)
- ASP.NET MVC+Entity Framework code first 迁移
- Entity Framework Code First迁移基本面拾遗
- Entity Framework Code First 迁移数据库
- Entity FrameWork Code First 迁移命令详解
- EntityFramework Code First 迁移