sql >> Database >  >> RDS >> Mysql

ASP MVC MsSql naar MySQL migratie

Weet je zeker dat je tweede vraag echt goed is?

1) Id =d.Id, <=Waarom deze komma (niet echt belangrijk)? ('ID =' is overbodig)

2) .Where(m => m.Trash ==false) <='Trash' staat niet in de selectie, dus deze eigenschap is op dit moment niet bekend

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

4) Waarom een ​​komma na .ToList()?

Ik heb uw DDL (wat geen MWE is) vereenvoudigd met gegenereerde gegevens. Ik heb uw probleem gereproduceerd in VS2013.

Ik heb uw vraag met LINQPad ook rechtstreeks in de database getest en ik heb hetzelfde probleem met de derde test, waarschijnlijk een bug in de driver 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()
    })

Geef een kortere SQL-query:

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

Zonder .Skip() en .Take(), krijgen we goede 'LEFT OUTER JOIN'



  1. Aanmaaktijd van Innodb-tabellen

  2. BDE vs ADO in Delphi

  3. Barman Cloud – Deel 2:Cloudback-up

  4. Hoe rijen uit de join-tabel (ManyToMany) in Doctrine te verwijderen?