准备工作:NuGut 以下包=>
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
Pomelo.EntityFrameworkCore.MySql.Design
新增Person类:
namespace Models.Entity
{
public class Person
{
public long Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public bool? Gender { get; set; }
}
}
新增类:MyDbContext
using Microsoft.EntityFrameworkCore;
namespace Models.Entity
{
public class MyDbContext : DbContext
{
public DbSet<Person> Persons { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
//配置连接字符串 必须TreatTinyAsBoolean=true 如果不加 bool类型会自动转化成bit类型 疯狂报错
//optionsBuilder.UseMySQL("Server=127.0.0.1;database=testdb;uid=root;password=pwd123456;TreatTinyAsBoolean=true");
optionsBuilder.UseMySql("Server=localhost;database=testdb;uid=root;password=123456;TreatTinyAsBoolean=true", new MySqlServerVersion(new Version(8, 0, 27)));
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
var etPerson = modelBuilder.Entity<Person>().ToTable("t_persons");
etPerson.Property(e => e.Age).IsRequired();//不写IsRequired,默认为可空
etPerson.Property(e => e.Gender).IsRequired();
etPerson.Property(e => e.Name).HasMaxLength(20).IsRequired();
}
}
}
【注意】:
到这里,基本完美避开所有坑。
开始同步到数据库
在程序包控制台中输入如下指令
1、Enable-Migrations
2、Add-Migration Initial
这一步完成之后,项目上会生成一个记录文件夹:
3、Update-DataBase
当你看到以上文字时,说明已经成功了,去数据库查看。
数据库成功生成,完美搞定。
同时附上参考博文:https://blog.csdn.net/sxy_student/article/details/88138256。