EF code first 数据模型创建数据库

首先:工具-NuGet包管理器-程序包管理器控制台,输入  Install-package EntityFramework  ,安装EF环境

创建表:

新建类,比如名为student ,命名空间:using System.ComponentModel.DataAnnotations; 表中内容为

 public class student
    {
        [Key]
        [Required]
        public int id { get; set; }
        public string name { get; set; }
    }

新建上下文类:比如名为studentcontext,命名空间:using System.Data.Entity; 表中内容为

 public class studentcontext:DbContext
    {
        public studentcontext() : base("studentcontext") { }
        public DbSet<student> students { get; set; }

    }

然后再App.config配置文件中:

  <connectionStrings>
    <add name="studentcontext" connectionString="Data Source=.;Initial Catalog=MySite;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient" />
  </connectionStrings>

最后在program main函数中:

using(studentcontext st=new studentcontext())
            {
                student s = new student();
                st.students.Add(s);
                st.SaveChanges();
            }

启动、执行,打开迁移 Enable-Migrations

此时数据库已创建完成,并自动创建Migrations文件夹,文件夹内有两个类文件;

---------------------------------

添加列:以增加 pwd 列为例

在student类表中,新增结构;

执行 Add-Migration studentpwd               //后面为表名+列名

执行 Update-Database

---------------------------------

删除列:以删除 pwd 列为例

在student类表中,删去索要删的结构;

执行 Add-Migration Delstudentpwd                      //Del+表名+列名

执行 Update-Database

----------------------------------

修改列:将age修改为nick为例

在student类表中,修改结构;

执行 Add-Migration Renamenick                      //Modify+修改后的列名

得到迁移cs文件:并改为

 public override void Up()
        {
            //AddColumn("dbo.students", "nick", c => c.String());
            //DropColumn("dbo.students", "age");
            RenameColumn("dbo.students", "age", "nick");
        }
        
        public override void Down()
        {
            //AddColumn("dbo.students", "age", c => c.Int(nullable: false));
            //DropColumn("dbo.students", "nick");
            RenameColumn("dbo.students", "nick", "age");
        }

执行 Update-Database

 ---------------------------------

设置主外键:

主键表中添加:

public virtual ICollection<bag> stu{ get; set; }  //bag为外键表名

外键表中:

 public virtual student stu{ get; set; }

 

posted on 2018-03-19 16:02  段了的弦  阅读(176)  评论(0编辑  收藏  举报