salut,
je lis actuellement un livre sur EF 4, et j'ai un problème lors d'un ajout d'une entité et de sa sauvegarde dans la base de données (SQL server 2008).
j'ai créé une base dans sql server avec trois champs : id (int,primary key), nom(string,nulls autorisés), et telephone (string,nulls)
dans visual studio, j'ai créé un EDM avec import de la base et de la table.
le code suivant devrait ajouter une ligne :
mais j'ai une erreur à l'exécution : il n'autorise pas la table "personne" à avoir deux valeurs identiques de la clé primaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var ctx = new personnes_dbEntities(); personne p1=new personne(){nom = "durand",telephone = "0387654321"}; ctx.AddTopersonnes(p1); ctx.SaveChanges();
un petit test et j'ai vu que il assignait au champ "id" la valeur 0, valeur de l"id qui est déjà en base(je ne l'ai pas dit mais j'ai un peu rempli la base).
ma question est : comment faire pour que le champ "id" soit géré automatiquement par sql server / VS?
ajouter une contrainte dans sql server?
modifier l'incrément de la colonne dans sql server?
ne pas cocher l'item "ajouter un champ pour la clé primaire de l'entité" dans l'assistant d'ajout de fichier EDM?
il y a plusieurs possibilités et comme recréer une base puis un projet avec un EDM est long à la longue, je m'en remets à vous!
PS: en fait, l' exemple cité est un peu plus compliqué, le champ téléphone fait partie d'une autre table, c'était pour tester le mapping, mais je crois que cela ne joue pas sur le problème de clés primaires.
Partager