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 :

récupérer la valeur du dernier auto incrément à travers le EDM


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Points : 47
    Points
    47
    Par défaut récupérer la valeur du dernier auto incrément à travers le EDM
    bonsoir,

    j'utilise un entity model framework

    donc j'ai 2 table interdiction et interdiction judiciaire (interdiction judiciaire hérite de interdiction)

    donc lors de l'ajout d'une interdiction elle être stocké dans la table interdiction et je dois récupérer l'id et l'insérer dans la table interdiction judiciaire
    alors que l'id de la table interdiction est un entier auto incrémenté
    donc je cherche à récupérer la dernière valeur auto incrémenté ajouté dans la table interdiction afin que je puisse l'ajouter dans la table interdiction judiciaire

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Dans le titre de ta question tu parles d'EDM, tu utilises Entity Framework ? Si oui tu n'as pas à te préoccuper de ça, il faut simplement modéliser dans l'EDM la relation d'héritage, et il se débrouille tout seul avec ça pour insérer dans les 2 tables

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Points : 47
    Points
    47
    Par défaut
    oui c'est entity framework
    en faite j'ai générer le schéma de edm à partir de ma base de donnée alors que je n'ai pas réussi à faire l'insertion au même temps dans les deux tables

  4. #4
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Points : 47
    Points
    47
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Interdiction inter = new Interdiction();
                inter.IdClient = idClientPhysique.Text;
                inter.Type = "Bancaire";
                inter.Description = description.Text;
                inter.DateInterdiction = DateInterdiction.SelectedDate;
                central.AddToInterdiction(inter);
                central.SaveChanges();
    comment est-ce que j'indique dans mon code afin d'ajouter le id dans la table interdiction bancaire sachant que le id est auto incrémenté

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il faut juste associer les 2 objets via les propriétés de navigation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Interdiction inter = new Interdiction();
    inter.IdClient = idClientPhysique.Text;
    inter.Type = "Bancaire";
    inter.Description = description.Text;
    inter.DateInterdiction = DateInterdiction.SelectedDate;
    central.AddToInterdiction(inter);
    InterdictionJudiciaire interJ = new InterdictionJudiciaire();
    interJ.Interdiction = inter;
    interJ.CodeInterdiction = "XXX";
    central.AddToInterdictionJudiciaire(interJ);
    central.SaveChanges();
    Mais là ta modélisation n'est pas bonne, la relation entre Interdiction et InterdictionJudiciaire devrait être un héritage, pas une association. Si tu fais ça tu n'auras pas à gérer les 2 objets séparéments, tu manipuleras simplement une InterdictionJudiciaire qui sera héritée de Interdiction

  6. #6
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Points : 47
    Points
    47
    Par défaut
    d'accord je vais essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    InterdictionJudiciaire interJ = new InterdictionJudiciaire();
    interJ.Interdiction = inter;
    interJ.CodeInterdiction = "XXX";
    central.AddToInterdictionJudiciaire(interJ);
    central.SaveChanges();
    mais je pose la question pour l interidctionJudiciaire comment je remplir le code interdiction sachant que l'id est auto incrémenté par quoi je dois remplacer l "XX"

  7. #7
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 85
    Points : 47
    Points
    47
    Par défaut
    voila donc je change mon modèle comme suit



    et j'ai essayé avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         Interdiction inter = new Interdiction();
                    inter.IdClient = idClientPhysique.Text;
                    inter.Type = "Bancaire";
                    inter.Description = description.Text;
                    inter.DateInterdiction = DateInterdiction.SelectedDate;
                    central.AddToInterdiction(inter);
                    InterdictionJudiciaire interJ = new InterdictionJudiciaire();
                    interJ.Interdiction = inter;
                    interJ.CodeInterdiction = inter.CodeInterdiction;
                    central.AddToInterdictionJudiciaire(interJ);
                    central.SaveChanges();
    il m'affiche l'erreur suivante


  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah pardon, j'avais pas vu que CodeInterdiction était la clé primaire... dans ce cas ne lui affecte pas de valeur, elle sera affectée automatiquement

    Par contre, le code que je t'avais donné partait du principe que tu laissais le modèle tel qu'il était... Si tu le modifies de façon à modéliser l'héritage, il ne faut pas créer une instance de Interdiction ET de InterdictionJudiciaire, mais seulement une instance de InterdictionJudiciaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    InterdictionJudiciaire inter = new InterdictionJudiciaire();
    inter.IdClient = idClientPhysique.Text;
    inter.Type = "Bancaire";
    inter.Description = description.Text;
    inter.DateInterdiction = DateInterdiction.SelectedDate;
    inter.CodeInterdiction = inter.CodeInterdiction;
    central.AddToInterdictionJudiciaire(interJ);
    central.SaveChanges();

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

Discussions similaires

  1. [Etats & Requêtes] Récupérer le dernier auto incrément sur base SQL Server
    Par droliprane dans le forum WinDev
    Réponses: 6
    Dernier message: 25/05/2013, 16h16
  2. [AC-2007] Comment récupérer la valeur du dernier numéro auto inséré dans une table ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2010, 17h17
  3. Récupérer la valeur de l'auto increment apres insertion en base
    Par altiman dans le forum Persistance des données
    Réponses: 5
    Dernier message: 02/06/2008, 11h47
  4. Réponses: 2
    Dernier message: 11/02/2008, 21h47
  5. Récupération de la valeur d'une auto-incrémentation
    Par maldufleur dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/07/2005, 16h50

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