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

本教程介绍了如何在Entity Framework中使用Code First迁移。从创建初始模型和数据库开始,到启用迁移、生成并运行迁移,包括自定义迁移、数据移动/自定义SQL、降级等操作,确保数据库随着模型的变化保持同步。
摘要由CSDN通过智能技术生成

本演练将提供对实体框架中 Code First 迁移的概述。您可以完成整个演练,也可以跳至自己感兴趣的主题。主题如下:

  • 启用迁移
  • 生成并运行迁移
  • 自定义迁移
  • 数据移动和自定义 SQL
  • 迁移到特定版本(包括降级)
  • 生成 SQL 脚本
  • 在应用程序启动时自动升级(MigrateDatabaseToLatestVersion 初始值设定项)

 

构建一个初始模型和数据库

在我们开始使用迁移之前,需要有一个项目和一个 Code First 模型。对于本次演练任务,我们仍将使用 Blog 和 Post 规范模型。

  • 创建新的 MigrationsDemo 控制台应用程序
  • 将最新版本的 EntityFramework NuGet 包添加到项目
    • 工具 –> 库程序包管理器 –> 程序包管理器控制台
    • 运行 Install-Package EntityFramework 命令
  • 添加一个包含下面所示代码的 Model.cs 文件。这段代码定义一个 Blog 类,该类由我们的域模型和一个作为 EF Code First 上下文的 BlogContext 类组成。
using System.Data.Entity; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Data.Entity.Infrastructure; 
 
namespace MigrationsDemo 

    public class BlogContext : DbContext 
    { 
        public DbSet<Blog> Blogs { get; set; } 
    } 
 
    public class Blog 
    { 
        public int BlogId { get; set; } 
        public string Name { get; set; } 
    } 
}
  • 现在我们已经有了一个模型,该使用它来执行数据访问了。用下面所示代码更新 Program.cs 文件。
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace MigrationsDemo 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值