Quelles sont les différences entre ces 3 types de chargement? Quelqu'un peut-il expliquer avec un exemple? Différentes ressources en ligne utilisent différentes définitions causant plus de confusion que nécessaire.Chargement par chargement différé, chargement différé et chargement effréné dans l'infrastructure
Répondre
Chargement paresseux et différé sont assez synonymes (AFAIK, s'il vous plaît corrigez-moi si je me trompe). La grande différence est entre Eager et Lazy. Désireuse va se passer avant, paresseux ne se produit que « au besoin » et l'exécution se produira à la DB nous allons prendre Niveau double une simple déclaration REJOIGNEZ comme un exemple
var people = (from p in people SELECT p).ToList();
var jobs = (from j in jobs SELECT j).ToList();
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
Ceci est un exemple de chargement avide. Nous obtenons TOUTES les personnes, TOUS les travaux, et nous faisons la jointure dans la mémoire. Pas très intelligent (habituellement). Voici à quoi ressemble le style Lazy.
var people = (from p in people SELECT p);
var jobs = (from j in jobs SELECT j);
var peopleAndJobs = (from p in people JOIN j on j.personId equals p.personId SELECT p).ToList()
Ce que cela fait est la création d'un IQueryable pour les personnes et l'emploi (IQueryable est paresseux), et la jointure se passe dans le DB. Cela économise l'activité réseau, et est généralement plus rapide, puisque la base de données est optimisée pour faire des jointures et autres. Sauf si nous disons explicitement "J'ai besoin de ces données!" (en le ToListing, en l'itérant, etc.) c'est paresseux. Il y a quelques bizarreries mais cela devrait être une amorce décente.
Chargement paresseux/différé: chargement paresseux et chargement différé sont la même chose. La relation est chargée lors de l'accès pour la première fois. L'idée est que si les données ne sont pas nécessaires, elles ne doivent pas être chargées.
Chargement rapide: La relation est récupérée avec l'objet parent. Cela peut être plus efficace dans le chargement des données mais chargera les données indépendamment des données utilisées/non utilisées.
Lorsque des objets sont renvoyés par une requête, les objets associés ne sont pas chargés en même temps. Au lieu de cela, ils sont chargés automatiquement lors de l'accès à la propriété de navigation. Également connu sous le nom de "chargement paresseux",
- 1. Chargement différé dans Hibernate
- 2. Linq to Sql Chargement différé
- 3. Chargement paresseux/différé d'une CollectionViewSource?
- 4. Chargement différé d'une page Silverlight
- 5. Chargement différé de TreeView dans .NET
- 6. Chargement différé des modules en python
- 7. Informations sur le chargement différé dans GWT et GWT-Ext
- 8. Chargement différé de RadGrid et erreur étrange dans firefox
- 9. Services Ria - Chargement différé d'images (ou de données binaires lourdes)
- 10. puis-je trier une propriété de chargement de chargement différé sur une entité de service de données wcf
- 11. Chargement de fichiers Javascript externes par chargement
- 12. Chargement/chargement automatique d'EJB/chargement EJB au démarrage (sur JBoss)
- 13. Hibernate chargement paresseux + Jersey REST = chargement impatient?
- 14. Pourquoi l'application de mon iPhone a-t-elle un chargement différé?
- 15. Rails 3: Chargement paresseux par rapport à chargement rapide
- 16. Chargement d'images de pré-chargement personnalisé Flex
- 17. MySQL - Sauvegarde et chargement
- 18. Chargement IQueryable et paresseux
- 19. Chargement et retouche d'images
- 20. Lucene.NET et chargement paresseux
- 21. Contenu Chargement
- 22. chargement jquery dans cfdiv
- 23. Chargement des images par programme
- 24. chargement d'une image par javascript
- 25. Magento: Chargement d'attributs par magasin
- 26. Chargement de tags ID3 sans chargement de son dans AS3
- 27. chargement gif dans mvc
- 28. Chargement Markdownify dans CodeIgniter
- 29. Chargement LuaInterface dans .net4
- 30. Chargement paresseux dans NHibernate
NOTE- la syntaxe peut ne pas être 100%, juste en sortant du brassard. –
Par exemple, une fois que vous faites une ToList, le chargement est très rapide, comme c'est le cas avec un DB pour obtenir les données. Donc, il semble être plus d'un style de programmation. Toutefois, avec EF, il existe un moyen de définir LazyLoading comme vrai ou faux dans les options de contexte. Comment cela s'intègre-t-il? – DotnetDude
EF4 avec LazyLoading off vous obligera à dire People.Include ("Jobs") pour ramener les enregistrements d'emplois (en supposant que les travaux sont FK'd à People). Avec LazyLoading activé, ces données seront renvoyées si nécessaire. C'EST À DIRE. quand vous dites People.Jobs.ToList(); –