首先:工具-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; }