2019-08-26补充:
生产实体之前需要保证项目没有错误。
保证web.config/app.config生成成功
保证ef相关依赖文件 MySql.Data.dll 和 MySql.Data.Entity.EF6.dll 成功生产复制到目标目录
否责可能会导致闪退或者提示没有安装相应的entityframework版本
end.
EntityFramework6 MySql将DB生成数据元实体对象问题,方便记录一下:
1、准备环境
为VS2017安装MySql连接工具
https://cdn.mysql.com//Downloads/MySQL-for-VisualStudio/mysql-for-visualstudio-1.2.8.msi
https://cdn.mysql.com//Downloads/Connector-Net/mysql-connector-net-6.9.12.msi
这里推荐安装6.9.12版本的.Net连接器,版本高了反而会出现不兼容的问题。
2、创建项目-略过
3、通过NuGet工具安装 MySql.Data和Mysql.Entity。同时安装EntityFramework6。
MySql.Data选择版本问题很重要,否则也可能无法生成实体或者生成实体时窗口闪退。
我们选择MySql.Data 6.9.12或6.10.7都可以。MySql.Entity则需要选择6.9.12。
经验得出安装MySql.Entity6.10.7会造成闪退。
如提示:您的项目引用了最新版本的实体框架,但是,找不到进行数据连接所需的与此版本兼容的实体框架数据库连接提供程序..
修改:app.config,web项目Web.config配置中,暂时移除type配置中的版本描述信息即可,如下:
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<providers>
4、增加ADO数据实体,并连接到mysql生成实体代码即可。
注意事项:
MySql.Data选择版最新的8.0.11不能与EntityFramework兼容使用,将出现错误打开数据等错误。
还有一点,以上仅供生成实体代码使用,MySql.Entity6.10.7在正常的情况是可用的。暂时没有研究过其他情况。
在MySql 8.0的新版中,生成实体会提示错误,虽然已经将用户的密码加密方案从caching_sha2_password更改为mysql_native_password。猜测可能需要安装Mysql-Connector-net 8.0,但是由于安装后又会影响到生产实体。暂时没有做验证。
运行环境可兼容mysql 8.0(别忘了生产环境使用安装MySql connector)
以上如果有错误望大神赐教!