我使用ef代码优先迁移在mysql上创建数据库模式。但当我要执行如下更新数据库的命令时,它给出了一个错误。
空间/全文/哈希索引和显式索引顺序的用法不正确
我遵循mysql支持的所有步骤
我试过在谷歌和stackoverflow上搜索。但我无法找到永久的解决方案来解决这个问题。
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=localhost;port=3306;database=testdb;Uid=root;password=*******;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
我正在使用mysql workbench 6.3.10。mysql服务器版本为8.0.11。
对于实体框架代码,我首先使用以下包。。
实体框架-6.2.0
mysql.data-6.10.7版本
mysql.data.entity-6.9.12版本
当我使用最新版本的mysql.data(8.0.11)时,它给了我不同的错误:
提供程序未返回providermanifesttoken字符串。
1条答案
按热度按时间ndasle7k1#
你可以试着跑
Update-Database -verbose
要查看更多日志并确定ef尝试使用CREATE INDEX
IX_idon
Table(
col_IdDESC) using HASH
此错误是由using HASH
. 如果您尝试使用哈希创建索引,mysql服务器将返回以下消息。错误代码:1221。空间/全文/哈希索引和显式索引顺序的用法不正确
定位
.Index(t => t.col_Id)
或者CreateIndex("dbo.table", "col_Id")
在迁移脚本中,并按如下所示进行更改:尝试使用
BTrees
这样地:或者
这对我有用。