1.安装EF Core和mysql数据库的nuget包
Microsoft.EntityFrameworkCore
Pomelo.EntityFrameworkCore.MySql
2.创建models文件夹,在文件夹下创建实体类
public class Users
{
public int Id {
get; set; }
[Column(TypeName = "varchar(200)"), Required]
public string Name {
get; set; }
[Column(TypeName = "varchar(200)")]
public string Email {
get; set; }
[Column(TypeName = "varchar(200)")]
public string age {
get; set; }
}
3.创建数据库上下文操作类MyDbContext继承DbContext
namespace EfCore
{
public class MyDbContext: DbContext
{
//添加Users实体类
public DbSet<Users> Users {
get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//modelBuilder.Entity<MyModel>()
// .HasKey(x => x.Id);
// modelBuilder.Entity<Users>()
// .Property(e => e.Email)
// .IsRequired()
// .HasMaxLength(50);
modelBuilder.ApplyConfigurationsFromAssembly(typeof(MyDbContext).Assembly);
}
//构造函数
public MyDbContext(DbContextOptions<MyDbContext> option) : base(option)
{
// 如果数据库表不存在则创建
Database.EnsureCreated();
// 执行自动迁移以将数据库与实体类定义同步
Database.Migrate();
}
}
}
4.在appsettings.json文件添加数据库连接字符串
"ConnectionStrings": {
"DbConnectionString": " Data Source=localhost;Database=efcore;AllowLoadLocalInfile=true;User ID=root;Password=root;allowPublicKeyRetrieval=true;pooling=true;CharSet=utf8;port=3306;sslmode=none;"
}
5.在Program.cs类实现依赖注入
6.控制器中使用,添加一个名称为UsersController的控制器
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
private readonly MyDbContext _context;
public UsersController(MyDbContext context)
{
_context = context;
}
[HttpGet("user")]
public ActionResult<IEnumerable<Users>> Get()
{
return _context.Users.ToList();
}
}
7.启动项目调用该api接口,发现数据库表成功创建,实现自动迁移