相对于sqlserver数据库,mysql的配置过程相对麻烦一些,我们从0讲起。

1.新建一个控制台应用程序

右键点击引用--管理NuGet程序包,搜索Mysql.Data.Entity并安装,安装完成后在已安装选项下会有以下三项:

EF CodeFirst关于Mysql如何自动生成数据库表

在App.config文件中添加:

<connectionStrings>
    <add name="conn" connectionString="server=localhost;port=3306;uid=root;pwd=123;database=testdb;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

2.分别新建实体类Person,配置类PersonConfig,上下文类MyDbContext

EF CodeFirst关于Mysql如何自动生成数据库表

EF CodeFirst关于Mysql如何自动生成数据库表

注:因为Name是string类型,映射到mysql中是longtext,而mysql支持最大长度为767bytes,所以要限制长度。

EF CodeFirst关于Mysql如何自动生成数据库表

EF CodeFirst关于Mysql如何自动生成数据库表

3.单击程序包管理器控制台

输入:EntityFramework\Enable-Migrations并回车

EF CodeFirst关于Mysql如何自动生成数据库表

在项目下会自动创建一个Migrations文件夹

EF CodeFirst关于Mysql如何自动生成数据库表

4.输入EntityFramework\Add-Migration InitModel    注:InitModel为本次迁移的名字,可自定义修改

会提示错误

EF CodeFirst关于Mysql如何自动生成数据库表

因为vs默认配置的是sqlserver数据库,所以我们要手动更改为启动mysql的sql生成器

在Migration文件夹中的配置类Congifuration的构造方法中:

EF CodeFirst关于Mysql如何自动生成数据库表

同时还要在上下文类中配置mysql

EF CodeFirst关于Mysql如何自动生成数据库表

再次输入命令

EF CodeFirst关于Mysql如何自动生成数据库表

5.输入命令EntityFramework\Update-Database -v

EF CodeFirst关于Mysql如何自动生成数据库表

在数据库中刷新,已经创建好表了

EF CodeFirst关于Mysql如何自动生成数据库表

运行项目,插入数据成功。

当实体类属性有变化时,执行第4步和第5步就可以了。

相关文章:

  • 2021-06-22
  • 2021-05-17
  • 2022-12-23
  • 2021-06-09
  • 2021-07-16
  • 2022-12-23
猜你喜欢
  • 2021-06-13
  • 2021-01-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
  • 2019-11-01
相关资源
相似解决方案