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

Linq Discussion :

Un membre définissant l'identité de l'objet ne peut pas être modifié


Sujet :

Linq

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 202
    Points : 43
    Points
    43
    Par défaut Un membre définissant l'identité de l'objet ne peut pas être modifié
    Bonjour,

    J'ai une table qui comporte une clef primaire sur plusieurs champs.

    Si j'essaie de modifier l'un de ces champs, j'obtiens l'erreur suivante au niveau de linq:

    "Un membre définissant l'identité de l'objet ne peut pas être modifié".
    A priori, linq refuse que l'on update la valeur d'une clef primaire et je suis TRES surpris (et très bloqué du coup !)

    Est ce que quelqu'un a une solution pour faire un update de la clef primaire, tout en passant par linq (je veux pas faire d'injection sql directe)

    D'avance merci

    A+

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Je pense pas que tu puisses modifier ta PK.

    Le mieux est de recréer une nouvelle entité avec les mêmes propriétés mais un PK différente.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 202
    Points : 43
    Points
    43
    Par défaut
    C'est mal foutu quand même ce linq non ?

    En sql je me prenais pas autant la tête, ou alors y'a un truc que j'ai pas compris....

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    C'est pas mal foutu, mais en changeant ta PK tu changes l'identité de ton entity, donc non c'est très bien fait au contraire.

    Je vois pas pourquoi une PK devrait être changée...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    C'est pas mal foutu, mais en changeant ta PK tu changes l'identité de ton entity, donc non c'est très bien fait au contraire.

    Je vois pas pourquoi une PK devrait être changée...
    Tous à fais d'accord, si tu en viens a changer une partie de ta clef primaire c'est :
    - soit ta clef n'est pas 2 ou 3 NF (pour ceux qui ont eu des cours de normalisation) et n'est donc pas appropriée pour te servir de clef primaire
    - soit ta BD est "mal foutu" auquel cas tu devrais repenser la structure de celle-ci

    Dans tout les cas, je te conseil de prendre un peu de temps pour voir si ta BD correspond à tes besoins si toute fois tu as un droit de modification dessus. En effet, si tu en viens à vouloir modifier une clef primaire, sauf erreur de manip' auquel cas il te suffit de créer un nouvel enregistrement avec les bonnes valeurs et de drop l'ancien, c'est que ta BD a un problème de conception.

  6. #6
    Membre habitué
    Avatar de jgard
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Points : 140
    Points
    140
    Par défaut
    C'est en effet parfaitement logique. Une clé primaire ne devrait pas pouvoir être modifiée. Si tu es dans le cas de clés primaires multiples, vérifie que tous les champs qui la composent sont vraiment nécessaires pour identifier ton record de façon unique.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/09/2014, 15h17
  2. Réponses: 2
    Dernier message: 21/06/2011, 15h19
  3. [JavaScript] Carte d'identité d'un Objet
    Par vermine dans le forum Contribuez
    Réponses: 0
    Dernier message: 11/01/2010, 11h39
  4. objet HttpSession peut-il être null
    Par AnneB dans le forum Struts 1
    Réponses: 3
    Dernier message: 30/06/2008, 11h23
  5. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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