mysql不正确地使用了空间/全文/哈希索引和显式索引顺序

kiz8lqtg  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(373)

我使用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字符串。

ndasle7k

ndasle7k1#

你可以试着跑 Update-Database -verbose 要查看更多日志并确定ef尝试使用 CREATE INDEXIX_idonTable(col_IdDESC) using HASH 此错误是由 using HASH . 如果您尝试使用哈希创建索引,mysql服务器将返回以下消息。

错误代码:1221。空间/全文/哈希索引和显式索引顺序的用法不正确

定位 .Index(t => t.col_Id) 或者 CreateIndex("dbo.table", "col_Id") 在迁移脚本中,并按如下所示进行更改:
尝试使用 BTrees 这样地:

.Index(t => t.User_Id, anonymousArguments: new { Type = "BTrees"})

或者

CreateIndex("dbo.table", "col_Id" , anonymousArguments: new { Type = "BTrees"}))

这对我有用。

相关问题