sql >> Databáze >  >> RDS >> Mysql

MySQL + Code First + Lazy Problém s načítáním!

To je přesně to, co se děje, ale myslím si, že to není tak docela důvod, proč si myslíte. DataReader je stále otevřený, ne kvůli odloženému spuštění v Linq, ale protože stále procházíte výsledky dotazu, když se pokoušíte získat přístup k jiné vlastnosti, která ještě není načtena. Když zavoláte .ToList() výsledky se vrátí všechny najednou a uloží se do List<TEntity> v paměti na klientovi, místo aby byl vracen po 1 záznamu.

V MS SQL Server to můžete obejít pomocí nastavení MultipleActiveResultSets=true ve vašem připojovacím řetězci, ale MySQL toto nastavení nepodporuje. Co byste však měli být schopni udělat, je dychtivě načíst další potřebná data pomocí .Include("tablename")

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



  1. Jak MAKEDATE() funguje v MariaDB

  2. Nástroj SQL Server bcp a číselný datový typ

  3. Spočítejte si v MySQL z SELECT

  4. Oblast rychlé obnovy Oracle