Mysql
 sql >> база данни >  >> RDS >> Mysql

EF:Неправилно използване на пространствен/пълен текст/хеш индекс и изричен ред на индекси

Реших го.

Във вашия файл за миграция заменете .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 команди ще се покажат




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предизвикателства при мащабирането на MySQL базата данни на Moodle

  2. Как да покажа последните изпълнени заявки на MySQL?

  3. Прилагане на уникални стойности в две таблици

  4. следене на mysql за промени

  5. Как мога да проверя дали MySQL таблица съществува с PHP?