IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Question à propos du One to Many en Code First


Sujet :

Entity Framework

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 90
    Points
    90
    Par défaut Question à propos du One to Many en Code First
    Salut à tous,

    une question pour les experts EF.

    on sait que pour mettre en place une liaison de tables il faut dans son Code First déclarer des propriétés en Virtual, avec ICollection pour une relation 1-N par exemple.

    j'ai mis en oeuvre ce type de relation mais en revanche en utilisant un List et sans Virtual, et ça a très bien fonctionné. dans ma base j'ai bien une relation mise en place, il m'a rajouté mon champs FK dans la bonne table et pointe bien sur les bons enregistrements.

    si ca marche avec un simple List<>, pourquoi parle-t-on du Virtual ICollection<>, et où est la différence ?

    merci à vous.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Le mot virtual est utilisé pour faire du Lazy Loading (charger ton entité et ses entités rattachées).

    Sans Lazy Loading tu devra utiliser "Include" pour charger les entités rattachées.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 149
    Points : 90
    Points
    90
    Par défaut
    donc à priori je ne fais pas de lazy loading vu que j'utilise pas le mot clé "Virtual". En revanche, je n'ai pas de "Include" non plus, mais ca marche quand meme. ou alors l'un ou l'autre est implicite (comme beaucoup de choses par défaut) ?

    Vous me direz "de quoi tu te plains si ca marche" ... simplement pour ma compréhension.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Je pense que c'est à cause de la nature même des types que tu cherches à comparer :
    • ICollection<T> permet d'ajouter/supprimer des éléments dans la liste
    • List<T> permet des accès aléatoires aux éléments de la liste, via leur index

    Il est important de noter cette différence, car cela signifie que ta List<T> va être immédiatement parcourue. Alors qu'avec ICollection<T>, elle ne sera parcourue que lorsque c'est nécessaire (d'où le lazy loading...).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. [MVC] Aide à propos de one to many
    Par Theon_Lyone dans le forum Spring Web
    Réponses: 0
    Dernier message: 06/06/2010, 18h17
  2. Petite question à propos du redbook...
    Par Michaël dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/11/2004, 12h54
  3. Petite question à propos d'une requete
    Par ViBy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/09/2004, 12h21
  4. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo