昨天,我知道除了使用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数据 Mysql.Data.Entities Mysql.Web
实体框架
MySQL数据
Mysql.Data.Entities
Mysql.Web
5.如果您在 App.config中* 具有 标签EntityFramework ,请对其进行注释,并在标签启动后在App.config中插入新标签EntityFramework *
<entityFramework> <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> </providers> </entityFramework>
6,添加 ADO.NET实体数据模型 (如上所述)
7. 生成实体连接字符串 (如所提到的)并在App.Config中打勾保存实体连接设置后,单击下一步
8. 选择数据库对象和设置 (表,视图,或存储过程和函数)(不要有“你想要哪个实体框架的版本使用?”因为我 只有一个 实体框架6.0提供商所以直接 跳过 了如果我唯一的提供者有效,则选择)
9,完成
恭喜^^
顺便说一句,您可能需要添加.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)
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功能的项目参考。