MySQL不正确使用spatialfulltexthash索引和显式索引顺序。

问题描述 投票:0回答:1

我使用EF代码优先迁移到MySQL上创建数据库模式。但是,当我执行更新数据库的命令时,它给出了错误,如下所示。

错误使用spatialfulltexthash索引和显式索引顺序。

我按照上面给出的所有步骤 支持MySQL

我曾试着在google上搜索,也在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。

对于实体框架的代码第一,我使用下面的包。

  • EntityFramework - 6.2.0
  • MySql.Data - 6.10.7
  • MySql.Data.Entity - 6.9.12

当我使用最新版本的MySql.Data(8.0.11)时,它给了我不同的错误。

提供者没有返回一个ProviderManifestToken字符串。

c# mysql asp.net-mvc entity-framework entity-framework-6
1个回答
1
投票

你可以尝试运行 Update-Database -verbose 查看更多的日志,并确定EF尝试执行一个脚本与 CREATE INDEX `IX_id` on `Table` (`col_Id` DESC) using HASH

这个错误是由以下原因造成的 using HASH.如果你尝试使用HASH创建索引,MySQL服务器会返回以下信息。

错误代码:1221。1221. 不正确使用spatialfulltexthash索引和显式索引顺序。

找出 .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"}))

这对我很有效。

© www.soinside.com 2019 - 2024. All rights reserved.