c#使用ef链接mysql,C# 之 .net core -- EF code first连接Mysql数据库

(为什么这么写,我记不太清了。大致步骤相同,不过我推荐的这个比我写的好。愿:在程序的路上多多学习,共同进步!奥利给!!!)

一、在Models 新建两个数据库类

这个是数据库需要生成的类基础

public classUser

{

[Key]public string ID { get; set; }

[MaxLength(50)]public string Name { get; set; }public int Age { get; set; }

[MaxLength(50)]public string Phone { get; set; }public string DepartmentID { get; set; }

[ForeignKey("DepartmentID")]public Department Department { get; set; }

}public classDepartment

{

[Key]public string ID { get; set; }

[MaxLength(50)]public string Name { get; set; }

}

二、新建文件夹MysqlDbContext,然后新建类MysqlContext (注意文件夹的名字,不要跟类名一样)

然后建立表与数据库关系映射

public classMysqlContext : DbContext

{public MysqlContext(DbContextOptions options) : base(options)

{

}//建立表与模型的映射关系

public DbSet User { get; set; }public DbSet Department { get; set; }protected override voidOnModelCreating(ModelBuilder modelBuilder)

{base.OnModelCreating(modelBuilder);

}

}

三、添加依赖项

依赖项右键 》》管理NuGet 包》》浏览

搜索这两个,注意安装的 版本号 ,是core 2.x的 你安装 3.x 会报错

我安装的是2.2.6

Microsoft.EntityFrameworkCore.Tools

Pomelo.EntityFrameworkCore.MySql

c9e11b91654d1339fcc6c866a9c2347a.png

不要在乎那个安装的颜色,第一个安装之前是浅蓝,安装之后就紫色了。

四、添加 Util 文件夹 ,添加AppConfigurtaionServices类

这个是创建生成的数据库文件的类

public classAppConfigurtaionServices

{public static IConfiguration Configuration { get; set; }staticAppConfigurtaionServices()

{//ReloadOnChange = true 当appsettings.json被修改时重新加载

Configuration = newConfigurationBuilder()

.Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true})

.Build();

}

}

还有这种写法(我不是太懂这两个有什么区别,知道的大哥可以给我留言,万分感谢)

public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory{public MysqlDbContext CreateDbContext(string[] args)

{var configBuilder = newConfigurationBuilder()

.SetBasePath(Directory.GetCurrentDirectory())

.AddJsonFile("appsettings.json")

.Build();var builder = new DbContextOptionsBuilder();

builder.UseMySql(configBuilder.GetConnectionString("DefaultConnection"));return newMysqlDbContext(builder.Options);

}

}

这种写法需要引用(注意版本)

Microsoft.Extensions.Configuration.FileExtensions

Microsoft.Extensions.Configuration.Json

Microsoft.Extensions.Configuration

Pomelo.EntityFrameworkCore.MySql

五、在Startup 的ConfigureServices下添加

services.AddDbContext(options =>options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));

c728e6470ef3d608c4d6e3b3fda14629.png

六、在appsettings.json 添加数据库连接

"ConnectionStrings": {"DefaultConnection": "Data Source =数据库服务器地址(127.127.127.127);port=3306;Initial Catalog=数据库名;user id=数据库连接名;password=密码;Character Set=utf8;sslmode=none"},

e6132c2a96863351bbc2d65122d93fbe.png

七、最后一步

执行命令找到程序应用控制台

先输入 Add-Migration init 回车

然后 Update-Database init 回车

最后在数据看一下

50f37dfcf00816debd36b9fc716d6b42.png

最后在补充一下,如果要添加或者修改数据库直接修改Models的类,然后执行Update-Database V1.1(这个v1.1是版本号),就可以了,不要直接改数据库。

多说一句,如果是新建的类库里面放的话,默认执行的是启动项,也就是你的web项目,要把默认的改成你的类库

结束。

目录如下:

33d2bec74b33f2b297b64a150602e2a9.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值