使用WEBAPI连接到MYSQL配置流程

1.需要引用的文档

MySql.Data.dll
MySql.Data.Entity.EF6.dll

1.1注意事项:

1.11 MySql.Data.Entity依赖于 MySql.Data,需要保证这两个的版本相同

1.12 EF版本必须高于6.0。

2.添加System.data配置
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=你的版本号, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
3.更改数据库连接字符串ConnectionStrings:
<connectionStrings>
<add name="你的应用程序名,可以复制默认的NAME" connectionString="(DEMO示范,自己写自己的连接字符串)Data Source=127.0.0.1;port=3306;Initial Catalog=shares;user id=root;password=root;Charset=utf8" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
4.增加Provider
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=你的版本号, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>
</entityFramework>

5.以下为本人部署中遇到的报错以及解决方案,在这里做一个整理

5.1 报错:类型“MySql.Data.MySqlClient.MySqlProviderServices”违反了继承安全性规则。派生类型必须与基类型的安全可访问性匹配或者比基类型的安全可访问性低。

原因MySql.Data 、MySql.Data.Entity的最新版本(6.10.4)有问题。

解决方案

安装6.9.10版本,包资源管理器下执行以下语句即可。

PM> Install-Package MySql.Data.Entity -Version 6.9.10
5.2 报错: No MigrationSqlGenerator found for provider 'MySql.Data.MySqlClient'
原因:mysql 不像sqlserver  VS可以自动知道去找MigrationSqlGenerator,而是需要手动指定
解决方案:
需要在Migrations文件夹的Configuration文件中增加红色文本
public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            SetSqlGenerator("MySql.Data.MySqlClient",new MySql.Data.Entity.MySqlMigrationSqlGenerator());
        }
5.3 报错: 执行Update-Database提示Specified key was too long; max key length is 767 bytes
解决方案:
在应用名.cs中DbContext类头部加入以下文本
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
版权声明:文中内容大部分收集于网络,转载后个人做补充修正,大家如果还遇到问题可以留言,会在后续更正补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值