Resuelto.
En su archivo de migración, reemplace las entradas .Index por comandos sql como a continuació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); // REMOVE THIS
Agregue el comando SQL correspondiente en la parte inferior de su método Up() (para cada índice)
Sql("CREATE index `IX_userId` on `Articles` (`userId` DESC)");
Los problemas que agrego luego con DataReaders están relacionados con el conector MySQL. El conector MySQL no admite varias conexiones activas. Para manejar esto, si tuviera esto en su controlador
public IEnumerable<Article> GetArticles()
{
return db.Articles;
}
Ahora debería ser
public IEnumerable<Article> GetArticles()
{
return db.Articles.ToList(); // ToList() will manage the request to work with only ONE data reader,
}
Si no sabe cómo convertir su .Index() a comandos SQL, simplemente
update-database -verbose
y todos los comandos SQL se mostrarán