sql >> Database >  >> RDS >> Mysql

MySQL + Code First + Lazy Load-probleem!

Dat is precies wat er gebeurt, maar ik denk niet helemaal de reden die jij denkt. De DataReader is nog steeds open, niet vanwege uitgestelde uitvoering in Linq, maar omdat u nog steeds de queryresultaten doorloopt wanneer u probeert toegang te krijgen tot de andere eigenschap die nog niet is geladen. Wanneer u .ToList() . aanroept de resultaten worden in één keer geretourneerd en opgeslagen in een List<TEntity> in het geheugen op de client, in plaats van 1 record per keer te worden geretourneerd.

U kunt dit omzeilen in MS SQL Server met de instelling MultipleActiveResultSets=true in uw verbindingsreeks, maar MySQL ondersteunt deze instelling niet. Wat u echter zou moeten kunnen doen, is gretig de aanvullende gegevens laden die u nodig hebt met behulp van .Include("tablename")

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



  1. Hoe een window-1251 (Russisch cyrillisch) MySql-database naar UTF-8 te converteren

  2. Iets sneller dan get_headers()

  3. Hoe kan ik negatieve waarde in positief veranderen in Oracle?

  4. Datetime-beperking toevoegen aan een gedeeltelijke PostgreSQL-index met meerdere kolommen