zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python 调用multiprocessing模块下面的Process类方法(实现服务器、客户端并发)-TCP协议
    Python开启进程的2中方式
    基于UDP的交互的实例
    Python socket粘包问题(最终解决办法)
    Python socket粘包问题(初级解决办法)
    Python socket套字节
    OSI七层模型
    异常处理
    Python封装与隐藏
    螺旋队列问题
  • 原文地址:https://www.cnblogs.com/qk2014/p/6019831.html
Copyright © 2011-2022 走看看