sql >> Databasteknik >  >> RDS >> Mysql

MySQL + Code First + Lazy Load problem!

Det är precis vad som händer, men jag tror att det inte är av den anledningen som du tror. DataReader är fortfarande öppen, inte på grund av uppskjuten exekvering i Linq, utan för att du fortfarande itererar genom frågeresultaten när du försöker komma åt den andra egenskapen som inte har laddats ännu. När du anropar .ToList() resultaten returneras på en gång och lagras i en List<TEntity> i minnet på klienten, istället för att returneras en post åt gången.

Du kan komma runt detta i MS SQL Server med inställningen MultipleActiveResultSets=true i din anslutningssträng, men MySQL stöder inte den här inställningen. Vad du dock borde kunna göra är att ivrigt ladda de ytterligare data du behöver med .Include("tablename")

var houses = (from h in db.Houses.Include("Images")
              select h).Take(10);



  1. Förlorade i datum och tidszoner

  2. Påverkar antalet kolumner MYSQL-hastigheten?

  3. Prestandaskillnad mellan tabellsamlingar i MySQL

  4. MySQLdb via proxy