net core EFcore CodeFirst 使用Mysql数据库

准备工作:NuGut 以下包=>

Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
Pomelo.EntityFrameworkCore.MySql.Design

新增Person类:
在这里插入图片描述

namespace Models.Entity
{
    public class Person
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public bool? Gender { get; set; }
    }
}

新增类:MyDbContext
在这里插入图片描述

using Microsoft.EntityFrameworkCore;

namespace Models.Entity
{
    public class MyDbContext : DbContext
    {
        public DbSet<Person> Persons { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            //配置连接字符串 必须TreatTinyAsBoolean=true  如果不加 bool类型会自动转化成bit类型 疯狂报错
            //optionsBuilder.UseMySQL("Server=127.0.0.1;database=testdb;uid=root;password=pwd123456;TreatTinyAsBoolean=true");

            optionsBuilder.UseMySql("Server=localhost;database=testdb;uid=root;password=123456;TreatTinyAsBoolean=true", new MySqlServerVersion(new Version(8, 0, 27)));


        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            var etPerson = modelBuilder.Entity<Person>().ToTable("t_persons");
            etPerson.Property(e => e.Age).IsRequired();//不写IsRequired,默认为可空
            etPerson.Property(e => e.Gender).IsRequired();
            etPerson.Property(e => e.Name).HasMaxLength(20).IsRequired();
        }
    }
}

【注意】:
在这里插入图片描述

到这里,基本完美避开所有坑。

开始同步到数据库

在程序包控制台中输入如下指令

1、Enable-Migrations
在这里插入图片描述

2、Add-Migration Initial
在这里插入图片描述
这一步完成之后,项目上会生成一个记录文件夹:
在这里插入图片描述

3、Update-DataBase
在这里插入图片描述
当你看到以上文字时,说明已经成功了,去数据库查看。

在这里插入图片描述
数据库成功生成,完美搞定。

同时附上参考博文:https://blog.csdn.net/sxy_student/article/details/88138256。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值