先添加数据库字段,例如文件名为 Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EF_Core01
{
public class Book
{
public long Id { get; set; }
public string Title { get; set; }
public DateTime? Date { get; set; }
public double Price { get; set; }
}
}
在添加 Book.cs 的配置,起名为BookConfig.cs
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EF_Core01
{
public class BookConfig : IEntityTypeConfiguration<Book>
{
public void Configure(EntityTypeBuilder<Book> builder)
{
//设置表的名字
builder.ToTable("T_Books");
//设置字段的属性为可空
builder.Property(e=>e.Date).IsRequired(false);
}
}
}
在添加 context的,这个比较重要的
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EF_Core01
{
public class MyDBContext:DbContext
{
//如果有关联多个表需要设置,可以扩展
public DbSet<Book> Books { get; set; }
//public DbSet<Person> Persons { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
//设置数据库连接字符串
optionsBuilder.UseSqlServer("Data Source=ADMIN\\MSSQLSERVER2012A;Initial Catalog=demo1;User ID=sa;Password=123456");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//注入
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
}
}
}
上面步骤设置完毕 就可以在 程序包管理器控制台 中使用 下面 命令
Add-Migration 备份名称
Update-Database
-----------------------
Update-Database 名字 ----用于回滚 或 前行
Remove-Migration ----用于删除最后一次迁移脚本
Script-Migration ----用于生成所有 sql语句
Script-Migration D F ----用于生成范围 sql语句
Script-Migration D ----生成D到最新版本 sql语句
使用到的命名空间
Microsoft.EntityFrameworkCore.SqlServer ----也可以换成其他数据库
Microsoft.EntityFrameworkCore.Tools ----这个是nuget的EFCore 命令行