代码生成数据库及更新数据库:Entity Framework first code(http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.ht
Posted TianGaojie123abc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码生成数据库及更新数据库:Entity Framework first code(http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.ht相关的知识,希望对你有一定的参考价值。
EF4.3 基于代码的迁移演练原文地址:http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx 原文名称:EF 4.3 Code-Based Migrations Walkthrough 准备工作在开始之前,我们需要一个项目,以及一个 Code First 的模型,对于这次演示,我们使用典型的博客 Blog 和回复 Post 模型。 1. 创建新的 MigrationsCodeDemo 控制台应用程序 2. 为项目添加最新版本的 EntityFramework NuGet 包。 找到包管理器控制台。 运行 Install-Package EntityFramework 命令。 成功之后的项目文件如下: 创建初始的模型和数据库1. 增加如下的 Model.cs 文件,代码定义了一个单个的 Blog 类表示我们的模型对象,BlogContext 类就是 EF Code First 的上下文。 using System.Data.Entity;using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Data.Entity.Infrastructure; namespace MigrationsCodeDemo public class BlogContext : DbContext public DbSet<Blog> Blogs get; set; public class Blog public int BlogId get; set; public string Name get; set; 2. 现在我们已经有了一个模型,是时候进行一次数据访问了。使用如下的代码更新 Program.cs 文件。 using System;using System.Collections.Generic; using System.Linq; using System.Text; namespace MigrationsCodeDemo 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);3. 运行程序,现在就可以在你本地的 SQLExpress 数据库中看到数据库了。 启用迁移1. 在 Blog 类中增加一个 Url 属性。 public class Blog public int BlogId get; set; public string Name get; set; public string Url get; set; 2. 现在运行程序,会看到如下的异常。 3. 正如异常建议,现在是开始使用 Code First 迁移的时候了,第一步是为我们的上下文启用迁移支持。 在包管理器的控制台中执行命令:Enable-Migrations 4. 这个命令在项目中增加名为 Migrations 文件夹,文件夹中包含两个文件。 Configuration 类,这个类允许你配置你的上下文的迁移行为,在这个演示中,我们仅仅使用默认配置。 因为在这个项目中只有一个上下文,Enable-Migrations 自动填充应用的这个上下文。 201202171353373_InitialCreate.cs 中的 InitialCreate ,生成这个迁移是因为我们已经通过 Code First 创建了一个数据库。这个迁移中的代码表示我们已经创建的数据库, namespace MigrationsCodeDemo.Migrations using System.Data.Entity.Migrations; public partial class InitialCreate : DbMigration public override void Up() CreateTable( "Blogs", c => new BlogId = c.Int(nullable: false, identity: true), Name = c.String(), ) .PrimaryKey(t => t.BlogId); public override void Down() DropTable("Blogs"); 第一个迁移
|