VS2019 对 MySQL 使用 Entity Framework
参考阅读
目标环境
- Visual Studio 2019
- .NET Framework 4.8
- MySQL 5.7.44 (remote-server)
需要安装
- MySQL for Visual Studio v1.2.10
- 没有这个工具,就不能在Visual Studio里添加与MySQL有关的数据连接
- 据称有另一种办法是使用Connector/ODBC替代Connector/NET,不过在我的环境中不work,在加载数据库时会出问题,另外ADO数据实体似乎不支持ODBC??
- 很神奇,这个玩意新版本的2.0.x竟然不支持VS2019,最大支持到2017
- 此外,这个工具似乎已经停止更新了,没有支持VS2022,所以VS2022的要么退回2019,要么洗洗睡吧
- PS:很难理解为什么这个工具不再更新了,莫非又是MS和OR之间的爱恨情仇??
- 没有这个工具,就不能在Visual Studio里添加与MySQL有关的数据连接
- MySQL Connector/NET 8.0.28
- 过高的版本似乎不兼容MySQL 5数据库,譬如9.3.0
NuGet:
EntityFramework≤6.2.0- 过高的版本在创建ADO数据实体时会因不兼容而阻止产生ADO数据实体对象
- 尚不确定与EF Core的相性如何
MySql.Data- 无需NuGet,直接从已经安装的Connector文件夹下
4.5.2中对类库添加引用依赖 - 同理,再添加
MySql.Data.EntityFramework,都在同一目录下
- 无需NuGet,直接从已经安装的Connector文件夹下
构建ORM关联
首先,从“服务器资源管理器”中添加与目标数据库的连接。连接后确保可以正确检索数据、模式完整。
项目中创建“ADO.NET实体数据模型”,自己提供相应的模型名称,并配置先前的连接作为该实体模型的目标。选择对应的表或视图,点击完成。
这个模型将运行一对.tt代码模板,这个模板用于生成与数据库中各个表对应的实体类(数据对象),这也是EF的工作原理——逆向工程。一般而言,这个过程通常时Database First工作模式下所必需的。生成的实体类会位于该ADO对象下,可以直接在项目中使用,也可以自己修改模式,或适应远端服务器数据结构的修改。
如果是Code First流程,从已有的数据实体构建数据库,那么走的是正向构建,通过EF的迁移机制搭建数据库(不过本文场景中不包含这一点,所以也没试过)。

浙公网安备 33010602011771号