Đã giải quyết nó.
Trong tệp di chuyển của bạn, hãy thay thế các mục nhập .Index bằng các lệnh sql như bên dưới
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
Thêm lệnh SQL tương ứng ở cuối phương thức Up () của bạn (cho mọi chỉ mục)
Sql("CREATE index `IX_userId` on `Articles` (`userId` DESC)");
Các vấn đề tôi thêm sau đó với DataReaders liên quan đến trình kết nối MySQL. Trình kết nối MySQL không hỗ trợ nhiều kết nối đang hoạt động. Để xử lý điều này, nếu bạn có điều này trong bộ điều khiển của mình
public IEnumerable<Article> GetArticles()
{
return db.Articles;
}
Bây giờ nó phải là
public IEnumerable<Article> GetArticles()
{
return db.Articles.ToList(); // ToList() will manage the request to work with only ONE data reader,
}
Nếu bạn không biết cách chuyển đổi các lệnh .Index () sang SQL, chỉ cần
update-database -verbose
và tất cả các lệnh SQL sẽ hiển thị