net6 使用ef core 映射mysql数据库(方法一)

发布时间 2023-08-23 22:03:19作者: 二二姐

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 然后回车