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

Миграция на ASP MVC MsSql към MySQL

Сигурни ли сте, че втората ви заявка наистина е наред?

1) Id =d.Id, <=Защо тази запетая (не е много важна)? („ID =“ е излишен)

2) .Where(m => m.Trash ==false) <='Trash' не е в избраното, така че това свойство в момента не е известно

3) .OrderByDescending(f => f.Created) <=idem за 'Created'

4) Защо запетая след .ToList()?

Опростих вашия DDL (който не е MWE) с генерирани данни. Възпроизводих проблема ви във VS2013.

Тествах също вашата заявка с LINQPad директно срещу базата данни и имам същия проблем с третия тест, вероятно грешка в драйвера mysql:

trdposts.Select(a => new {
    Created = a.Created,
    Body = a.Body,
    Comments = a.Posttrdcomments
                .Select(d => new { Body = d.body, Id = d.Id, d.Created, d.Trash})
                .Where(m => m.Trash == 1)
                .OrderByDescending(f => f.Created)
                .Skip(33)
                .Take(10)
                .ToList()
    })

Дайте по-кратка SQL заявка:

SELECT t1.PostId, t1.body, t1.Id, t1.Created, t1.Trash
FROM trdposts AS t0
    OUTER APPLY (
      SELECT t2.body, t2.Created, t2.Id, t2.PostId, t2.Trash
      FROM trdcomments AS t2
      WHERE ((t2.PostId = t0.Id) AND (t2.Trash = 1))
      ORDER BY t2.Created DESC
  ) AS t1
ORDER BY t1.Created DESC

Без .Skip() и .Take(), получаваме добро 'LEFT OUTER JOIN'



  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 таблица за актуализиране на базата на стойност на друга таблица

  2. Изчисляване на времето за изпълнение на Mysql заявка въз основа на броя на записите

  3. Не е намерен подходящ драйвер за 'jdbc:mysql://localhost:3306/mysql

  4. Най-високо представяне на стойност във всяка група

  5. SQL заявки срещу условия в PHP