Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Expert Confirmé

    Homme Profil pro Gilles Vino
    Software Developer
    Inscrit en
    mars 2008
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Nom : Homme Gilles Vino
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : mars 2008
    Messages : 1 477
    Points : 2 684
    Points
    2 684

    Par défaut Différences entre 2 classes simples - Clés étrangeres

    Bonjour,

    Je me pose la question suivante concernant Entity Framework 5:
    Qu'elle sont les différences entre les 2 classes suivantes (Album1 et Album2)?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class Album1
    {
        public int Id { get; set; }
        public string Titre { get; set; }
        public int ArtisteId { get; set; }
        public virtual Artiste Artiste { get; set; }
    }
     
    public class Album2
    {
        public int Id { get; set; }
        public string Titre { get; set; }
        public Artiste Artiste { get; set; }
    }
     
    public class Artiste
    {
        public int Id { get; set; }
        public string Nom { get; set; }
    }
    Est-ce que c'est exactement pareil, différence de performance, d'utilisation, concurrence... ?

    Merci pour vos conseils.

  2. #2
    Expert Confirmé
    Homme Profil pro Benoît
    Inscrit en
    février 2003
    Messages
    1 710
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoît
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 1 710
    Points : 2 704
    Points
    2 704

    Par défaut

    Je connais pas EF mais avec Album 1 , tu peux aller lire Artiste plus tard.

    Code :
    1
    2
    Album1 = GetLazyAlbum1(Id)  // Lecture Table Album
    Album1.Artiste = GetArtiste(Album1.ArtisteId) //Lecture Table Artiste
    Avec Album2 tu devras relire la partie Album
    Code :
    1
    2
    Album2 = GetLazyAlbum2(Id) // Lecture Table Album
    Album2 = GetFullAlbum2(Id) // Lecture Table Album + Table Artiste
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Expert Confirmé

    Homme Profil pro Gilles Vino
    Software Developer
    Inscrit en
    mars 2008
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Nom : Homme Gilles Vino
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : mars 2008
    Messages : 1 477
    Points : 2 684
    Points
    2 684

    Par défaut

    Donc d'apres toi Album1 permet le lazy/eager -loading alors que Album2 ne le permet pas?

    Dans les documentations sur Entity Framework il est dit que le mot-cle "virtual" permet par defaut d'utiliser le lazy-loading, comme par exemple:
    Code :
    public virtual Artiste Artiste { get; set; }
    Je me demande si c'est pas une question de nouvelle/ancienne notation.

  4. #4
    Expert Confirmé
    Avatar de GuruuMeditation
    Homme Profil pro Olivier Matis
    .Net Architect
    Inscrit en
    octobre 2010
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Matis
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2010
    Messages : 1 537
    Points : 3 238
    Points
    3 238

    Par défaut

    Pour les POCO, quand une propriété est Virtual, elle peut être overridée par EF avec un proxy. http://msdn.microsoft.com/en-us/data/jj592886.aspx
    Microsoft MVP : Visual C#

    MCPD - Windows Phone Developer
    MCPD - Windows Developer 4

    http://www.guruumeditation.net

    “If debugging is the process of removing bugs, then programming must be the process of putting them in.”
    (Edsger W. Dijkstra)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •