net6 使用ef core 映射mysql数据库(方法一)
1.安装下载nuget包
Pomelo.EntityFrameworkCore.MySql
和Microsoft.EntityFrameworkCore.Design
如下图
2.创建一个模型类,之后映射到数据库里面的表、字段和这个类是一致的。
public class Movies { /// <summary> /// id /// </summary> [Required] public string Id { get; set; } /// <summary> /// 电影 /// </summary> public string Film { get; set; } /// <summary> /// 电视剧 /// </summary> public string Tv { get; set; } /// <summary> /// 动漫 /// </summary> public string Anime { get; set; } }
3.数据库连接字符串
"ConnectionStrings": { "DefaultConnection": "server=localhost;port=3306;database=movies;user=root;password=root;" },
如下图
4.创建一个上下文并继承DbContext
public class FilmDbContext : DbContext { public FilmDbContext(DbContextOptions<FilmDbContext> options) : base(options) { } /// <summary> /// 在上下文中build字段到数据库(字段映射到数据库) /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(ModelBuilder modelBuilder) { var movies_types = modelBuilder.Entity<Movies>().ToTable("Movies");//创建表名 movies_types.Property(x => x.Id).IsRequired().HasAnnotation("Id", true); movies_types.Property(x => x.Tv); movies_types.Property(x => x.Anime); movies_types.Property(x => x.Film); } public DbSet<Movies> MoviesTypes { get; set; } }
5.在program类中添加代码连接数据库
//连接数据库 builder.Services.AddDbContext<FilmDbContext>( options => { options.UseMySql(builder.Configuration.GetConnectionString("DefaultConnection"), new MySqlServerVersion(new Version(8, 0, 2))); });
如下图
6.然后在 程序包管理控制台 写 迁移命令
(1)程序包管理控制台 添加 Add-Migration init2 然后回车
这时候就创建一个 EF Core 迁移,生成一个名init2 的迁移文件
如下图
(2)程序包管理控制台 更新Update-Database 然后回车