2010-08-11 7 views
0

J'essaie d'insérer une ligne dans une table avec une colonne d'identité et trois colonnes "normales" en utilisant une structure d'entité dans wpf. cependant j'ai reçu ce message d'erreur: Impossible d'insérer la valeur explicite pour la colonne d'identité dans la table 'MyTable' lorsque IDENTITY_INSERT est défini sur OFF voici mon extrait de code, en essayant d'ajouter à la table utilisateur qui a nom, prénom, âge et userID colonne (identité):Insertion dans une table avec une colonne d'identité

 var newuser = new User(); 
     newuser.SurName = surNameTextBox.Text; 
     newuser.Name = nameTextBox.Text; 
     newuser.Age = Int32.Parse(ageTextBox.Text); 
     context.AddToUsers(newuser); 
     context.SaveChanges(); 

Quelqu'un peut-il m'aider à résoudre ce problème?

+0

Essayez-vous de définir une valeur ID utilisateur? (Pas dans le code de l'exemple, mais peut-être ailleurs?) – Tobiasopdenbrouw

+0

Je ne pense pas mais je vais vérifier à nouveau. En fait, je me demandais comment l'userID augmenterait. Dois-je l'augmenter moi-même ou sql le fait pour moi? – cemregoksu

+0

je ne pouvais pas comprendre ce que vous voulez dire, et maintenant je ne sais pas si vous avez compris ce que je voulais faire =) Je veux juste assigner les colonnes données dans l'extrait de code, je veux que sql pour définir l'ID utilisateur par lui-même. – cemregoksu

Répondre

1

Les colonnes d'identité se mettent en effet à jour - c'est leur but.

Si c'est le seul code que vous utilisez pour mettre à jour l'utilisateur, alors je regarderais (ou publierais) la méthode AddToUsers dans le DataContext.

+0

je ne pouvais pas trouver n'importe où que j'ai assigné l'userID mais pendant le débogage, je me suis rendu compte que l'userID semble être affecté 0, fo l'objet d'utilisateur qui est passé à la méthode AddObject. mais je ne sais pas pourquoi et comment ... – cemregoksu

+0

Eh bien, si userID est une sorte d'int, et n'est jamais assigné à, il sera 0. –

+0

est-ce un problème pour sql? et devrais-je faire quelque chose pour cela? comment puis-je le réparer? – cemregoksu

2

Je ne suis pas au courant-cadre de l'entité, mais pour les curieux est la commande MS SQL pour permettre une insertion sur une colonne d'identité:

SET IDENTITY_INSERT tablename ON 

Je suis d'accord avec Wonko à Sane, le problème est presque certainement dans la méthode AddToUsers.

+0

+1 pour l'info, et +1 pour être d'accord avec moi. :) –

Questions connexes