.net6 web api使用EF Core,根据model类自动生成表

1.安装EF Core和mysql数据库的nuget包
Microsoft.EntityFrameworkCore
Pomelo.EntityFrameworkCore.MySql
.net6 web api使用EF Core,根据model类自动生成表_第1张图片
2.创建models文件夹,在文件夹下创建实体类
.net6 web api使用EF Core,根据model类自动生成表_第2张图片

  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
.net6 web api使用EF Core,根据model类自动生成表_第3张图片

namespace EfCore
{
    public class MyDbContext: DbContext
    {
        //添加Users实体类
        public DbSet<Users> Users { get; set; }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            //modelBuilder.Entity()
            //    .HasKey(x => x.Id);

        //    modelBuilder.Entity()
        //        .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;"
  }

.net6 web api使用EF Core,根据model类自动生成表_第4张图片
5.在Program.cs类实现依赖注入
.net6 web api使用EF Core,根据model类自动生成表_第5张图片
6.控制器中使用,添加一个名称为UsersController的控制器
.net6 web api使用EF Core,根据model类自动生成表_第6张图片

 [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接口,发现数据库表成功创建,实现自动迁移
.net6 web api使用EF Core,根据model类自动生成表_第7张图片

.net6 web api使用EF Core,根据model类自动生成表_第8张图片

你可能感兴趣的:(C#,.net,core,EF,.net,数据库,mysql,EFCORE,c#)