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

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 11
    Points
    11
    Par défaut [Linq To Entities] Pourquoi n'ais-je pas accès aux méthodes d'extensions (First()) à l'intérieur d'un select ?
    Bonjour,

    Je veux retourner qu'un et un seul utilisateur de ma table Users (donc l'EntitySet Users) en spécifiant son identificateur unique (dans ce cas-ci c'est le GUID).

    Je récupère l'utilisateur pour faire un update dans un de ses champs.

    J'ai cependant un problème.

    Voici ma requête actuelle, qui fonctionne, mais j'aurais préféré que mon select me retourne l'utilisateur directement au lieu d'une collection (ou est-ce bien un type IQueryable ?).

    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
     
    using (ProjectEntities entities = new ProjectEntities())
    {
        Guid currentUserGuid = ApplicationHelper.CurrentUserGuid;
     
        var userToUpdate = from user in entities.Users.Include("UserSetting")
                           where user.UserId == currentUserGuid
                           // J'aurais aimé pouvoir faire user.FirstOrDefault() ici mais je ne peux pas.
                           select user;
     
        // Je suis obligé d'appeler FirstOrDefault() ici. :-(
        userToUpdate.FirstOrDefault().UserSetting.ProfilePicture = Path.Combine(userPath, fileName);
     
        entities.SaveChanges();
    }
    Peut-être y a-t-il un moyen plus intelligent de me retourner mon type ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    il suffit de mettre des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var userToUpdate = (from user in entities.Users.Include("UserSetting")
                           where user.UserId == currentUserGuid
                           select user).FirstOrDefault();

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Merci !

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

Discussions similaires

  1. Pourquoi ne peut on pas acc
    Par samlepirate dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2011, 23h21
  2. [Portlet] Accès aux méthodes de l'EJB entity?
    Par asmoune dans le forum Portails
    Réponses: 2
    Dernier message: 09/09/2008, 17h17
  3. connecté wifi mais pas accès aux sites
    Par coccinelle7 dans le forum Hardware
    Réponses: 2
    Dernier message: 22/12/2006, 15h37
  4. Pourquoi je n'ai pas accès au serveur ?
    Par Prue dans le forum Accès aux données
    Réponses: 9
    Dernier message: 12/09/2006, 15h13
  5. Pas accès aux lots SQL et fichiers DTS
    Par elmagnifico dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2003, 09h51

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