昨天,我知道除了使用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
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文件
在此文件夹内
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功能的项目参考。
问题内容: 我尝试通过使用实体框架连接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密码 问题:我需要同步数据库,但我不知道如何以最佳方式进行同步。我读过这个问题,但它很老了,没
我已经将读上下文和写上下文分开了,现在我将在默认情况下在ReadOnlyContext中启用LazyLoading。我也使用了下面的方法,但不幸的是它不起作用。 我的模型: 我的ef版本: EntityFramework核心版本2.1.2 我得到了这个错误: “为警告‘Microsoft.EntityFrameworkCore.Infrastructure.DetachedLazyLoadingW