.net6 web api使用EF Core,根据model类自动生成表
.net6 web api使用EF Core,根据model类自动生成表,想要创建数据库,表添加model类即可,省去了还要去数据库表手动创建的繁琐
·
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接口,发现数据库表成功创建,实现自动迁移

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)