Asp.net Mvc Entity Framework Code First 数据库迁移
1、创建Mvc项目
2、安装Entity Framework
2.1、如下图打开程序包管理器控制台:
2.2、输入命令Install-Package EntityFramework,即可安装EntityFramework,如下图:
3、创建你的需要的实体类
我这里简单创建一个Student类,如下:
public class Student { public int ID { set; get; } public string Name { set; get; } }
4、创建数据库上下文类(Database context)
新建类(我这里用SchoolContext命名),继承DbContext,如下:
..... using System.Data.Entity.ModelConfiguration.Conventions; using WebApplication1.Models; ...... public class SchoolContext: DbContext { public SchoolContext() : base("SchoolContext") { } public DbSet<Student> Student { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //prevents table names from being pluralized(防止生成的数据库表名称是复数形式,如Students) modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }
public DbSet<Student> Student { get; set; }这句不能忘了加,这对应刚才建的Student类。
5、修改配置文件(Web.config)
在Web.config文件里添加代码:
<connectionStrings> <add name="SchoolContext" connectionString="data source=.;initial catalog=SchoolDB;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings>
6、在程序包管理器控制台执行迁移命令
6.1、输入enable-migrations,并执行,项目里会自动添加Migrations文件夹,并生成类文件Configuration.cs,如下:
internal sealed class Configuration : DbMigrationsConfiguration<WebApplication1.DAL.SchoolContext> { public Configuration() { AutomaticMigrationsEnabled = false; } protected override void Seed(WebApplication1.DAL.SchoolContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. E.g. // // context.People.AddOrUpdate( // p => p.FullName, // new Person { FullName = "Andrew Peters" }, // new Person { FullName = "Brice Lambson" }, // new Person { FullName = "Rowan Miller" } // ); // } }
6.2、输入命令:add-migration "第一次迁移"
后面的汉字可以自定义。
项目会生成201611010701013_第一次迁移.cs文件,如下:
public partial class 第一次迁移 : DbMigration { public override void Up() { CreateTable( "dbo.Student", c => new { ID = c.Int(nullable: false, identity: true), Name = c.String(), }) .PrimaryKey(t => t.ID); } public override void Down() { DropTable("dbo.Student"); } }
6.3、输入命令update-database即可在数据库看到数据库了。
参考文档:https://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application