昨天我知道实体框架是除了使用 Dataset 或 DataReader 之外访问数据库的另一种方法,然后我尝试使实体框架 6 适用于 MVS 2013 中的 MySql 数据库服务器。
我使用 .Net FrameWork 4.5.1 打开 WinForms。 (所以我只有App.config,但项目中没有app/web配置)
我安装后mysql-安装程序-社区-5.7.3.0-m13.msi and
通过安装 EntityFramework 包
工具菜单 -> 库包管理器 -> 管理 NuGet 包
解决方案... -> 在线 -> (搜索) EntityFramework (注意版本
该软件包的版本应该是 6.0.2,如果不是,则单击
更新 -> 要更新的 EntityFramework)
当我尝试通过添加 ADO.NET 实体数据模型时
右键单击项目 -> 添加 -> 新项目 -> ADO.NET 实体数据模型
-> 从数据库生成 -> 新连接
-> 数据源:-> 更改...-> MySQL 数据库
-> 用服务器IP、用户名和密码填写服务器名称
->选择数据库名称->测试连接->确定
然后生成实体连接字符串 -> 勾选 App.Config 中的将实体连接设置保存为 -> 下一步> ->
您想使用哪个版本的实体框架?
有选项 Entity Framework 6.0 但您无法使用它,因为
“您的项目引用了最新版本的实体框架;
但是,实体框架数据库提供程序与此兼容
找不到您的数据连接的版本。退出此向导,
安装兼容的提供程序,然后重新构建您的项目
执行此操作”。
怎么解决这个问题呢?
顺便说一句,如果您在 Nuget 包中安装实体框架版本 5,那么您可能会在此处选择实体框架 5.0,并且您可能会成功使用实体框架 5,但不能使用版本 6。
首先,我们甚至不需要安装 mysql-installer-社区-5.7.3.0-m13.msi。
- 安装最新的mysql-visualstudio-插件
- 安装最新的mysql 连接器网络
- 新的 C# .Net4.5WinForms 框架(用于4.0它应该基于实体框架 6 支持 .NET 4.0 吗? )
- 安装4Nuget 包(按照顺序,如果您在EntityFramework之前安装Mysql.Data.Entities,它将解决依赖关系并安装EntityFramework6.0.2但我们需要的是EntityFramework6.1.0)
实体框架
MySQL数据
Mysql.数据.实体
Mysql.Web
5.如果你有标签实体框架 in 应用程序配置,请注释掉并在标签启动后在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.Add ADO.NET 实体数据模型(如问题中提到的)
7.After 生成实体连接字符串(如问题中所述)并勾选在 App.Config 中保存实体连接设置,然后单击下一步
8.选择您的数据库对象和设置(表、视图或存储过程和函数)(没有“您想使用哪个版本的实体框架?”,因为我有only oneEntity Framework 6.0 提供者如此直接skip如果我唯一的提供商有效,则选择)
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 位窗口)
C:\Program Files (x86)\MySQL\MySQL Connector Net 6.8.3\Assemblies\v4.5
(64 位窗口)
作为您进一步 EF6 功能的项目参考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)