Реших го.
Във вашия файл за миграция заменете .Index записи с sql команди, както е по-долу
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
Добавете съответната SQL команда в долната част на вашия метод Up() (за всеки индекс)
Sql("CREATE index `IX_userId` on `Articles` (`userId` DESC)");
Проблемите, които добавям след това с DataReaders, са свързани с MySQL конектора. MySQL конекторът не поддържа множество активни връзки. За да се справите с това, ако сте го имали в контролера си
public IEnumerable<Article> GetArticles()
{
return db.Articles;
}
Сега трябва да е
public IEnumerable<Article> GetArticles()
{
return db.Articles.ToList(); // ToList() will manage the request to work with only ONE data reader,
}
Ако не знаете как да конвертирате вашите .Index() в SQL команди, просто
update-database -verbose
и всички SQL команди ще се покажат