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 :

Ecrire une requête Linq to Entity, en utilisant l'opérateur sql NOT IN


Sujet :

Entity Framework

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut Ecrire une requête Linq to Entity, en utilisant l'opérateur sql NOT IN
    Bonjour,
    je travail avec le chéma ci-desous, et je veux savoir comment je peux écrire la requête sql suivante en Linq To Entity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Select * 
    FROM GROUEPUSERS G
    WHERE G.IDGROUPE NOT IN (SELECT IDGROUPE
                             FROM  APPARTENIR
                             WHERE IDCLIENT = id)

    Sachant que la table APPARTENIR est la table résultat de l'association plusieurs-à-plusieurs des deux tables GROUPEUSERS et CLIENT mais dans le modèle le table APPARTENIR apparaît comme une propriété de navigation dans les deux tables
    Ma deuxième question : c'est comment je peux insérer des lignes dans cette association c'est-à-dire comment je vais pouvoir ajouter un utilisateur à un groupe
    Merci

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Ta requête Linq peut se formuler comme :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var groups = from g in context.GROUPEUSER where !g.UTILISATEUR.Select(d => d.ID).Contains(1) select g;
    Je prends les groupes ou il n'y a pas d'utilisateur avec l'ID 1 lié au groupe.

    Pour les insertions, si g1 est ton groupe :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g1.UTILISATEUR.Add(new UTILISATEUR{ NOM = "test"});
     
    context.SaveChanges();
    Microsoft MVP : Windows Platform

    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)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Merci ça marche pour la requête

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    j'ai un petit problème au moment de l'ajout de l'utilisateur à un groupe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try
                {
                   int idGrp =  Convert.ToInt32(forms.GetValue("idGrp").ToString());
                   int idUser = Convert.ToInt32(forms.GetValue("idUser").ToString());
                   GROUPEUSER g = new GROUPEUSER(_dao.getGroupeByID(idGrp));
                   UTILISATEUR _user = new UTILISATEUR(_dao.getUserByID(idUser));
     
                   g.UTILISATEUR.Add(_user);
                   return View();
                }
                catch (Exception e) {  return RedirectToAction("addUserToGroup");}
    mais le code marche pas, il me redirige toujours vers la view addUserToGroup.
    Une autre chose, l'association resultat entre les deux tables GROUPEUSER et UTILISATEUR, est-ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.UTILISATEUR.Add(_user)
    ça va permettre de remplire cette table, je parle au niveau de la BDD, pas au niveau des entités car j'ai pas encore compris la logique du métier de EF
    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par ahmedbj Voir le message
    mais le code marche pas, il me redirige toujours vers la view addUserToGroup.
    Tu es redirigé vers cette vue tout simplement parce que tu rentres dans le bloc catch donc une exception a été interceptée. Il faut regarder le contenu de l'exception et corriger l'erreur.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/04/2009, 16h35
  2. Colle sur un tri dans une requête linq to sql
    Par boby62423 dans le forum Linq
    Réponses: 5
    Dernier message: 18/03/2009, 10h01
  3. Ecrire une requête détaillée d'accès à un fichier excel
    Par alunama dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2008, 18h58
  4. Réponses: 3
    Dernier message: 28/03/2008, 10h48
  5. Ecrire une requête
    Par justinetb dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/06/2006, 21h12

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