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

ASP.NET MVC Discussion :

Dictatiel MVC Music Store [Débutant]


Sujet :

ASP.NET MVC

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut Dictatiel MVC Music Store
    Bonjour à tous,

    J'ai entamé le dictatiel mvc music store et j'ai une petite question sur le code. Mais débutant en MVC il s'agit peut être plus d'une question MVC, je ne sais pas trop

    Dans la partie IV on effectue des maj des classes du modèle avant la création de la base avec Entity Framework :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    namespace MvcMusicStore.Models
    {
        public class Album
        {
            public int      AlbumId     { get; set;
    }
            public int      GenreId     { get; set; }
            public int      ArtistId    { get; set; }
            public string   Title       { get; set; }
            public decimal  Price       { get; set; }
            public string   AlbumArtUrl { get; set; }
            public Genre    Genre       { get; set; }
            public Artist   Artist      { get; set; }
        }
    }
    A ce moment la du tuto, je n'ai pas compris pquoi on avait les propriétés GenreId et ArtistId, puisqu'on a déjà des propriétés Genre et Artist. Et "pour voir" je n'ai pas mis ces propriétés Id.

    Maintenant dans la partie 5, on crée un nouveau contrôleur qui inclût les opérations CRUD sur la classe Album. Lors de la génération automatique des vues, je n'ai pas les champs Genre et Artist qui apparaissent. Et si je rajoute quelque chose du genre suivant dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @Html.DisplayFor(modelItem => item.Artist.Name)
    je n'ai pas d'erreur, mais aucune valeur ne s'affiche.
    Ma table "Album" de la base de donnée étant bien valorisé avec un id d'artiste et un id de genre.


    Je comprends donc que les propriétés GenreId et ArtistId de la classe Album sont importantes mais je ne comprends pas pquoi. J'ai l'impression que les mettre c'est faire de la redondance dans le code ?!


    Merci d'avance de vos explications

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Il s'agit d'une particularité liée à Entity Framework. public Genre Genre { get; set; } est une propriété de navigation.

    En "code first", la propriété GenreId est visible, tandis que "model first" elle ne l'est pas.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2009
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 208
    Points : 395
    Points
    395
    Par défaut
    Merci de l'info, je vais étudier ça dès demain

+ Répondre à la discussion
Cette discussion est résolue.

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