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

Проблем с MySQL + Code First + Lazy Load!

Точно това се случва, но мисля, че не е точно по причината, която мислите. DataReader все още е отворен не поради отложено изпълнение в Linq, а защото все още преглеждате резултатите от заявката, когато се опитвате да получите достъп до другото свойство, което все още не е заредено. Когато извикате .ToList() резултатите се връщат наведнъж и се съхраняват в List<TEntity> в паметта на клиента, вместо да се връща по 1 запис наведнъж.

Можете да заобиколите това в MS SQL Server, като използвате настройката MultipleActiveResultSets=true във вашия низ за връзка, но MySQL не поддържа тази настройка. Това, което трябва да можете да направите обаче, е нетърпеливо да заредите допълнителните данни, от които се нуждаете, като използвате .Include("tablename")

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



  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. Изявление VALUES в MySQL

  3. MySQL - Най-добрият метод за запазване и зареждане на елементи

  4. Как да персонализирате вашите MySQL и MariaDB архиви с ClusterControl

  5. Защо SELECT * FROM таблица INNER JOIN..ON показва пресичащата се колона два пъти?