Développement d’application avec base de données Semaine 2: Requête avec l’Entity Data Model Automne 2015
Méthodes pour faire des requêtes Le lazyloading Plan de présentation
Plusieurs méthodes disponibles pour faire des requêtes. Le choix va reposer sur un choix personnelle plus que sur une question de performance. Méthodes utilisées Linq(lambda) To Entities Entity SQL Etc. Méthodes pour faire des requêtes
Query the Model, Not the Database Laissons ce travail à ADO.NET et son provider. Méthodes pour faire des requêtes
Modèle
Première requête -> Parcourir une collection
En fait! Var contacts = context.Contacts; c’est ObjectSet contacts = context.Contacts; Type
Les classes suivantes sont générés automatiquement. Mais d’où viennent ces classes
Les propriétés de navigation nous permettent d’interroger les entités associés. Les propriétés de navigation
Requête Linq to entities
Linq Lambda : Requête Linq to Entities
Pourquoi la clause FROM est au début contrairement au SQL? Question de culture!
Ici, les propriétés de navigation nous simplifie vraiment la vie: Propriété de navigation avec Linq
Entity SQL Une autre façon de faire une requête
Lorsqu’on fait une requête, seuls les éléments de la requête serons affectés au résultat de la requête. Par exemple: var contacts= from c in context.Contacts select c; Seul les contacts sont chargés à partir de la base de données, les données en liens ne sont pas chargé. Autrement la base de données serait toujours téléchargée… lazy loading
Le Lazyloading fait donc des requêtes constamment pour permettre au programmeur d’avoir accès aux données. Exemple: Ainsi, s’il y a 10 contacts, il y aura 11 requêtes de réalisées. Lazy Loading
Soit qu’on fait une requête complète. Soit qu’on désactive le lazy loading essayer de filtrer les données qui seront chargées. Solution?
Si on désactive le Lazy Loading
Nous avons vue trois différentes façon de faire une requête sur le MODÈLE. Nous avons vue le Lazy Loading. Maintenant, à votre tour de jouer. Conclusion