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 Discussion :

Donnée non voulue dans une liste ASP.NET WEB API


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 11
    Par défaut Donnée non voulue dans une liste ASP.NET WEB API
    Bonjour

    Je m'adresse à vous car je ne sais comment poser ma question sur google.

    Quelqu'un y a déjà surement répondu mais ne sachant ou chercher ...

    Je vous explique, je suis extrêmement débutant en c# asp.net web api, je développe une application de location de gîtes

    Je commence alors par me créer un contrôleur qui me retourne une liste de gîtes,

    seulement le problème est que lors de la réception de ma liste, j'ai des données dont je ne veux pas ! ( dû à des foreign keys de ma base de données j'imagine. )

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public List<Gite> GetGite()
            {
                return db.Gite.ToList();
            }
    et le résultat

    Nom : 2018-12-28_19-29-30.jpg
Affichages : 103
Taille : 58,1 Ko

    donc le truc c'est qu'il me donne les indisponibilités / périodes /photos du gîte, ça c'est bon j'en ai besoin

    Mais il me donne aussi les réservations à la quelle ce gîte est lié , et donc il me donne aussi le membre qui est lié à la réservation , le statut qui est lié à la réservation ect...
    Et ça je n'en veux pas du tout

    Comment est ce que je peux faire pour qu'il ne m'affiche pas ces données ?

    J'ai cru comprendre qu'il y a du lazy loading dans l'histoire, seulement je ne veux pas le désactiver car j'ai besoin des informations telle que indisponibilités / périodes / photos

    Merci de votre aide

    PS: Je précise que j'ai trouver ça https://docs.microsoft.com/en-us/asp...amework/part-4, mais quand ils parlent de lazy loading ils disent que le fait de faire .ToList() ne devraient pas inclure Auteur,ne fonctionne pas chez moi, il l'inclut quand même


    EDIT: Est ce que cela aurait avoir avec ces 2 lignes que j'ai mis dans mon glabal.asax ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);

  2. #2
    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 : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par taniax Voir le message
    Comment est ce que je peux faire pour qu'il ne m'affiche pas ces données ?

    J'ai cru comprendre qu'il y a du lazy loading dans l'histoire, seulement je ne veux pas le désactiver car j'ai besoin des informations telle que indisponibilités / périodes / photos
    Tu as bien compris l'origine de ton probleme !

    Le Lazy Loading va charger toutes les donnees liees a une entite, et que tu le veuilles ou non. Pour utiliser la methode Include() il faut desactiver le Lazy Loading afin de ne charger que ce qui est necessaire.

    Ca, c'etait la problematique principale. La seconde problematique est un concept d'architecture... Pour te debarasser des donnees inutiles, tu dois mapper ton Entite a un autre objet (qu'on appele Model ou ViewModel). Ces objets contiendront juste ce dont tu as besoin dans ton UI et/ou dans ta couche métier.

    Si tu avais respecte les concepts d'architecture des le depart, tu n'aurais pas rencontre ce probleme, car on evite a tout prix d'appeler directement les Entites dans l'UI.
    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.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 11
    Par défaut
    Merci énormément pour cette réponse, je viens également de comprendre ce qu'était le ViewModel.

    Je ne sais comment vous remercier .

Discussions similaires

  1. intégration de code javascript dans une page asp.net
    Par Je-cherche-pfe dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 06/09/2007, 17h10
  2. Inserer un checkbox dans une table ASP.NET
    Par intissar_g dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/04/2007, 14h24
  3. Réponses: 3
    Dernier message: 13/11/2006, 23h25
  4. Réponses: 2
    Dernier message: 04/06/2006, 20h11
  5. Réponses: 1
    Dernier message: 04/04/2006, 11h29

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