昨天,我知道除了使用Dataset或DataReader之外,Entity Framework是访问数据库的另一种方法,然后我尝试使MVD 2013中的MySql数据库服务器可以使用Entity Framework 6。
我使用.Net FrameWork 4.5.1打开WinForms。(所以我在项目中只有App.config但没有app / web配置)安装mysql-installer-community-5.7.3.0-m13.msi和
通过安装EntityFramework软件包
工具菜单->库软件包管理器->管理解决方案的NuGet软件包...->联机->(搜索)EntityFramework(请注意此软件包的版本,应该为6.0.2,如果没有,请单击更新-> EntityFramework更新)
当我尝试通过添加ADO.NET实体数据模型时
右键单击项目->添加->新建项目-> ADO.NET实体数据模型->从数据库生成->新建连接->数据源:->更改...-> MySQL数据库->填写服务器名称为服务器IP,用户名和密码->选择数据库名称->测试连接->确定
然后生成实体连接字符串->在App.Config中勾选将实体连接设置保存为->下一步>->
您要使用哪个版本的Entity Framework?有选项Entity Framework 6.0,但是您不能使用它,因为
“您的项目引用了最新版本的Entity Framework;但是,找不到与该版本兼容的Entity Framework数据库提供程序用于您的数据连接。在执行此操作之前,请退出此向导,安装兼容的提供程序并重新构建您的项目”。
如何解决呢?
顺便说一句,如果您在Nuget软件包中安装了Entity Framework 5,则可能在此处具有Entity Framework 5.0选项,并且您可能会成功使用Entity Framework 5,但没有使用版本6。
首先,我们甚至不需要安装mysql-installer- community -5.7.3.0-m13.msi。
安装最新的mysql-visualstudio-plugin 安装最新的mysql-connector-net 新的C#.Net 4.5框架WinForms(对于4.0,它应该基于Entity Framework 6是否支持.NET 4.0?) 安装4个Nuget程序包(按照顺序,如果在EntityFramework之前安装Mysql.Data.Entities,它将解析依赖关系并安装EntityFramework 6.0.2,但我们需要的是EntityFramework 6.1.0) 实体框架
MySQL数据
Mysql.Data.Entities
Mysql.Web
5.如果您在App.config中具有标签EntityFramework,请对其进行注释,并在标签启动后在App.config中插入新标签EntityFramework
6,添加ADO.NET实体数据模型(如上所述)
生成实体连接字符串(如所提到的)并在App.Config中打勾保存实体连接设置后,单击下一步
选择数据库对象和设置(表,视图,或存储过程和函数)(不要有“你想要哪个实体框架的版本使用?”因为我只有一个实体框架6.0提供商所以直接跳过了如果我唯一的提供者有效,则选择)
9,完成
恭喜^^
顺便说一句,您可能需要添加.dll文件
MySql.Data.dll MySql.Data.Entity.EF6.dll MySql.Web.dll 在此文件夹内
C:\ Program Files \ MySQL \ MySQL Connector Net 6.8.3 \ Assemblies \ v4.5(32位Windows)
C:\ Program Files(x86)\ MySQL \ MySQL Connector Net 6.8.3 \ Assemblies \ v4.5(64位Windows)
作为进一步EF6功能的项目参考。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。