Résolu.
Dans votre fichier de migration, remplacez les entrées .Index par des commandes sql comme ci-dessous
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); // REMOVE THIS
Ajoutez la commande SQL correspondante en bas de votre méthode Up() (pour chaque index)
Sql("CREATE index `IX_userId` on `Articles` (`userId` DESC)");
Les problèmes que j'ajoute ensuite avec DataReaders sont liés au connecteur MySQL. Le connecteur MySQL ne prend pas en charge plusieurs connexions actives. Pour gérer cela, si vous aviez ceci dans votre manette
public IEnumerable<Article> GetArticles()
{
return db.Articles;
}
Maintenant ça devrait être
public IEnumerable<Article> GetArticles()
{
return db.Articles.ToList(); // ToList() will manage the request to work with only ONE data reader,
}
Si vous ne savez pas comment convertir votre .Index() en commandes SQL, juste
update-database -verbose
et toutes les commandes SQL s'afficheront