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

Framework .NET Discussion :

[linq to entity] erreur à l'insertion dans une table avec Foreign Key


Sujet :

Framework .NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut [linq to entity] erreur à l'insertion dans une table avec Foreign Key
    Bonjour, j'essaye d'insérer un objet dans une table Personne cette table à un ID de type Guid qui à une clé étrangère dans la table Aspnet_users (UserID).
    Et à l'insertion j'ai cette erreur :
    Les entités dans « EntitiesModel.Personne » participent à la relation « FK_Personne_aspnet_Users ». 0 « aspnet_Users » connexes ont été trouvés. 1 « aspnet_Users » est attendu.
    je ne comprend pas le problème. L'utilisateur étant déjà créé et présent dans la tabel aspnet_users. Et l'id utilisé est le même puisqu'il provient de cette table..
    Pouvez-vous m'aider ? !
    Merci !!

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Tu n'as pas lié ta table User et Personne dans la FK_Personne_aspnet_Users de la table Personne

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    merci mais j'ai peur de ne pas comprendre. C'est dans le schémas d'entités que je fais ça ou au niveau de la base ?

  4. #4
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    hummm tu as des notions de SQL ?

    Si tu as une FK de défini sur un chmpas en mode "not null" et que tu ne lui met pas de valeur alors l'insertion ne peut pas avoir lieu, que tu utilises du SQL, EF ou tout ce que tu veux

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    Bah oui j'ai quelques notions ! :p

    j'ai d'ailleurs essayé d'inserer ce que je voulais via une commande SQL et ça marche !

    j'ai d'un coté ma table aspnet_users avec son champ UserId de type Guid.

    de l'autre ma table Personne qui possède un champ Id de type Guid et qui a pour clé étrangère le champ UserId de la table aspnet_users.

    Après la création d'un nouvel utilisateur, celui ci existe donc dans aspnet_users, j'insère dans ma table Personne un nouvel utilisateur avec l'Id de l'utilisateur précédement créé.
    Et à cette tentative d'insertion j'ai le message d'erreur ci-dessus.
    Et en debug je vois bien que la valeur de la clé existe bien dans la table aspnet_users...
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var tables = new EntitiesModel();
      Personne pers = new Personne();
     
                    pers.Id = Id;
                    pers.Nom = "";
                    pers.Prenom = "";
                    pers.Adresse = "";
                    pers.CodePostal = "";
                    pers.Ville = "";
                    pers.Pays = "FRANCE";
         tables.AddToPersonne(pers);
         tables.SaveChanges();

  6. #6
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Points : 1 257
    Points
    1 257
    Par défaut
    Donc l'Id est un FK et non un PK ? ou les 2 ?

    Pas l'habitude de ce genre de la manip je sais pas si je vais pouvoir t'aider...

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 259
    Points : 90
    Points
    90
    Par défaut
    les 2 en fait

    j'ai résolu mon problème en le contournant, j'ai créé un trigger qui dès l'insertion d'un user dans aspnet_uers créé l'id dans la table Personne...

    Mais je pense que je risque d'avoir le même problème dans d'autres tables qui ont la même configuration...

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/07/2011, 01h15
  2. Insertion dans une table avec IBDataSet
    Par mehdiing dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/12/2009, 11h16
  3. Erreur lors d'insertion dans une table avec Indentity
    Par rad_hass dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/03/2008, 15h22
  4. Réponses: 3
    Dernier message: 24/04/2006, 21h03
  5. Réponses: 3
    Dernier message: 10/02/2006, 15h48

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