EF: Uso incorrecto de índice espacial / texto completo / hash y orden de índice explícito
Estoy usando Entity Framework con mi proyecto WEB Api. Yo uso el código de primera migración.
El problema es que: después de realizar mi migración inicial e intentar actualizar la base de datos, aparece este error
Uso incorrecto del índice espacial / texto completo / hash y el orden explícito del índice
Que es causado por este comando SQL en la base de datos de actualización:
create table `Articles`
(
`articleId` int not null auto_increment ,
`title` longtext not null ,
`digest` longtext,
`content` longtext not null ,
`imgLink` longtext not null ,
`releaseDate` datetime,
`userId` int not null ,
primary key ( `articleId`)
) engine=InnoDb auto_increment=0
CREATE index `IX_userId` on `Articles` (`userId` DESC) using HASH
El comando SQL se genera a partir de este código en la migración:
CreateTable(
"dbo.Articles",
c => new
{
articleId = c.Int(nullable: false, identity: true),
title = c.String(nullable: false, unicode: false),
digest = c.String(unicode: false),
content = c.String(nullable: false, unicode: false),
imgLink = c.String(nullable: false, unicode: false),
releaseDate = c.DateTime(precision: 0),
userId = c.Int(nullable: false),
})
.PrimaryKey(t => t.articleId)
.ForeignKey("dbo.Users", t => t.userId, cascadeDelete: true)
.Index(t => t.userId);
Parece que DESC y HASH en la creación del índice causan este error. ¿Alguna idea sobre cómo cambiar la creación del índice sql generado para que vaya con una indexación simple? ¿O simplemente omite este error para que mi base de datos de actualización pueda pasar? Gracias
EDITAR clase de artículo agregado
public class Article
{
public Article()
{
this.comments = new HashSet<Comment>();
}
[Key]
public int articleId { get; set; }
[Required]
public string title { get; set; }
public string digest { get; set; }
[Required]
public string content { get; set; }
[Required]
public string imgLink { get; set; }
public DateTime? releaseDate { get; set; }
// Clé étrangère (table User)
public int userId { get; set; }
// Auteur de l'article
public virtual User user { get; set; }
// Commentaires
public virtual ICollection<Comment> comments { get; set; }
}
Agregaré que DESC HASH en el índice se genera en la salida de cada .Index () en el archivo de migración