安装mysql5.5.537_.NET Core中使用EF Core连接MySQL

本文介绍了如何在.NET Core项目中使用Entity Framework Core连接并操作MySQL数据库。通过在VS2017中新建项目,添加MySql.Data.EntityFrameworkCore NuGet包,创建数据模型,配置DbContext,设置连接字符串,以及在Startup中注入数据库服务,最后进行数据库迁移,实现了数据库的初始化。在迁移过程中,可能会遇到的挑战包括手动创建__EFMigrationsHistory表以及处理已有数据表的更新问题。
摘要由CSDN通过智能技术生成

最近一直在捣鼓.NET Core方面的东西,顺便写下点东西记录下

1、打开vs2017,新建一个项目

9ba9848439db772c69aa2a3cb92fbd63.png

2、vs会自动生成一个项目,然后打开NuGet搜索MySql.Data.EntityFrameworkCore下载

42a68e3e6514a2f62b2828daed20d54e.png

3、然后在Models下面新建一个Student类,然后再新建一个类继承DbContext类

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel.DataAnnotations;usingSystem.Linq;usingSystem.Threading.Tasks;namespaceMySql.Test.Models

{public classStudent

{

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

[Display(Name="姓名")]public string Name { get; set; }

[Display(Name="年龄")]public int Age { get; set; }

}

}

public classMysqlDbContext : DbContext

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

{

}//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)//{//optionsBuilder.UseMySQL("server=.;database=TestDb;user=root;password=123456;");//}//protected override void OnModelCreating(ModelBuilder modelBuilder)//{//base.OnModelCreating(modelBuilder);//}

public DbSet students { get; set; }

}

这里说明下MySQL连接也可以写在这里,但我们后面会注入到services中

4、然后我们在appsettings.json里添加一个连接字符串(.NET Core使用在appsettings.json里读取配置,类似于webconfig)

{"Logging": {"LogLevel": {"Default": "Warning"}

},"AllowedHosts": "*","ConnectionStrings": { "MysqlConnection": "Data Source=.;Database=TestDb;User ID=root;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;"}

}

5、然后打开Startup,将MySQL连接注入services,具体Startup使用可以去看相关博客

public voidConfigureServices(IServiceCollection services)

{

services.Configure(options =>{//This lambda determines whether user consent for non-essential cookies is needed for a given request.

options.CheckConsentNeeded = context => true;

options.MinimumSameSitePolicy=SameSiteMode.None;

});

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);var connection = Configuration.GetConnectionString("MysqlConnection");

services.AddDbContext(options =>options.UseMySQL(connection));

}

6、然后我们就可以开始数据迁移了

在vs中的“程序包管理器控制台”中输入如下两个命令

Add-Migration init(执行此命令项目生成一个目录(Migration))

Update-Database init

然后我们就可以在数据库看到生成的数据库以及数据表了

注意:如果出现错误提示xxxx.__EFMigrationsHistory  doesn't exist

我们需要手动在数据库创建__EFMigrationsHistory这张表

然后再开始迁移就好了

最后还遇到一个问题是:如果已经数据迁移后,又在Models添加一个类再次更新时需要指定到具体的表名,不然会提示原来的表已经存在,或者删除原来的数据表(不推荐)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值