一:新建一个类库 并 引入EntityFramework 6.3
二:新建一个实体类
namespace EFCodeFirst
{
[Table("System_User")]//数据库中表名
public class User
{
[Key] //主键
public long UserID { get; set; }
public string UserName { get; set; }
}
}
三:建立上下文
public class EFCodeFirstDbContext:DbContext
{
public EFCodeFirstDbContext()
:base("Default")
{ }
public DbSet<User> Users { get; set; }
}
四:配置数据库连接语句
在类库的App.Config文件中添加数据库连接语句
五:建立迁移文件
将类库设置为启动项
在程序包管理器控制台,将默认项目修改为EntityFramework数据层
1:在控制台中输入Enable-Migrations
执行成功后 会在 项目增加一个Migrations的文件夹和Configuration.cs的类
Configuration.cs类
internal sealed class Configuration : DbMigrationsConfiguration<EFCodeFirst.EFCodeFirstDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(EFCodeFirst.EFCodeFirstDbContext 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.
}
}
2:在输入Add-Migration AddUser AddUser为迁移文件名 自己定义
public partial class AddUser : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.System_User",
c => new
{
UserID = c.Long(nullable: false, identity: true),
UserName = c.String(),
})
.PrimaryKey(t => t.UserID);
}
public override void Down()
{
DropTable("dbo.System_User");
}
}
3:在输入Update-Database
成功后,就可以在数据库中看到表名为System_User的表了
六:初始化数据
注意:此处在初始时配置,如果表已存在则需要删除已有的表
internal sealed class Configuration : DbMigrationsConfiguration<EFCodeFirst.EFCodeFirstDbContext>
{
public Configuration()
{
//为true时 为自动迁移 False为手动迁移
AutomaticMigrationsEnabled = false;
}
//数据库初始化
protected override void Seed(EFCodeFirst.EFCodeFirstDbContext 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.
//初始化一条数据
User user = new User()
{
UserID = 1,
UserName = "admin"
};
context.Users.AddOrUpdate(user);
context.SaveChanges();
}
}
在执行命令
Add-Migration AddUser-Init
Update-Database
表System_User就会有一条初始数据
七:增加字段
namespace EFCodeFirst
{
[Table("System_User")]//数据库中表名
public class User
{
[Key] //主键
public long UserID { get; set; }
public string UserName { get; set; }
//我们新加一个字段,并设置默认值
public string Password { get; set; } = "123456";
}
}
执行命令
Add-Migration AddUser-Pwd-default
Update-Database