当前位置: 首页 > 面试题库 >

在Microsoft Visual Studio 2013的WinForms中为MySql(C#)启用实体框架6

太叔永新
2023-03-14
问题内容

昨天,我知道除了使用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。

  1. 安装最新的mysql-visualstudio-plugin
  2. 安装最新的mysql-connector-net
  3. 新的C#.Net 4.5 框架WinForms(对于 4.0, 它应该基于Entity Framework 6是否支持.NET 4.0?)
  4. 安装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
*

  <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. 选择数据库对象和设置 (表,视图,或html" target="_blank">存储过程和函数)(不要有“你想要哪个实体框架的版本使用?”因为我 只有一个
实体框架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)

作为进一步E​​F6功能的项目参考。



 类似资料:
  • 问题内容: 我尝试通过使用实体框架连接MySql数据库,但Visual Studio不想生成* .edmx? 我在db中有1个表, -选择ado.net edm,- 选择从数据库生成 -选择 db-在这里我认为我应该选择表,但是 向导关闭 我尝试使用其他版本的EF,但是仍然无法正常工作。问题是什么? 我的软件: -Windows 7 * 64 -vs 2017社区 -mySql 8.0社区 问题答

  • 我从这个网站上读到了关于懒惰加载的内容。启用或禁用LazyLoding “如果我们请求已启用LazyLoading的学生列表,数据提供程序将从数据库中获取所有学生,但每个StudentAddress属性在显式访问该属性之前不会加载。” 此语句表示,当我将设置为true时,将不会加载相关数据。然而 如果我设置延迟加载启用=true,上面的代码返回所有特技与他们的老师和地址。我在这里错过了什么?有人能

  • 我试图连接我的实体框架在MySQL数据库,但当我连接这个错误发生 找不到具有固定名称“mysql.data.mysqlclient”得ADO.NET提供程序得实体框架提供程序.确保在应用程序配置文件的“Entity Framework”部分中注册了提供程序。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。 这是我的类库whit实体的a

  • 这是我的代码: 但是当我从控制器调用函数时。它显示错误 在上一个异步操作完成之前,在此上下文上启动了第二个操作。使用“await”确保在该上下文上调用另一个方法之前已完成任何异步操作。任何实例成员都不能保证线程安全。 请帮我解决这个问题。

  • 场景: 我有两个MySQL数据库: 大型主数据库 小型客户端数据库 示例表: 大数据库用户: 文本用户名 int id varchar登录 varchar密码 ...更多的领域 客户端数据库用户 内部id int UNIQUE api\u id(来自master的id) varchar登录 varchar密码 问题:我需要同步数据库,但我不知道如何以最佳方式进行同步。我读过这个问题,但它很老了,没

  • 实体框架5.0首先使用现有数据库编写代码。使用电动工具对类进行逆向工程。一切都很好。数据库有两个表。一个父母和一个孩子的外键返回到父母ID。ID都是带有自动增量的int。我添加了许多父母记录,现在想将孩子记录添加到特定的父母。我能看到的唯一方法是通过在父母表中搜索名称或其他属性并返回ID来找到适当的父母ID。然后在添加孩子时在外键属性中使用该ID。我不想设置新父母,所以这是将孩子添加到现有父母的唯