2009-07-27 6 views
3

J'utilise des entités Framework dans mon projet et cela a été un cauchemar!Entity Framework - SaveChanges() n'obtient pas la clé d'identité générée

J'ai une base de données SQL où j'ai une table appelée Form.

Le formulaire a un ID qui est un PK et une identité (il est automatiquement augmenté).

Cette fois-ci que je fais ceci:

Dim form as int32 
Dim dbform As New Entities1 
Dim form696 As New Form 

dbform.AddToForm696(form) 
dbform.SaveChanges() 

ID = form.ID 

Il y a une semaine ID et form.ID avait la clé générée après insertion, mais maintenant il a seulement 0.

Je ne sais pas ce qui est arrivé pour que cela cesse de fonctionner.

J'ai dû changer le nom de l'insertion, supprimer et mettre à jour les procédures stockées pour plusieurs tables et donc j'ai dû tout repasser en arrière. Peut-être que j'ai fait quelque chose de mal, mais j'ai regardé maintes et maintes fois et tout semble bien.

Est-ce que quelqu'un a une idée pourquoi?

Répondre

3

Je pense que ce problème a été résolu avec des correctifs. Vous devriez essayer de supprimer et de rajouter votre modèle de données s'il ne fonctionne toujours pas. EF semble avoir moins de problèmes avec cela maintenant.

+1

J'ai le dernier EF 4.1 et non il ne retourne pas l'id – Korayem

0

ok ... J'ai oublié ce

http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/12/17/ado-net-entity-framework-tools-stored-procedures.aspx

je devais « utiliser la colonne Résultat de reliure et cartographier la nouvelle valeur à une colonne d'entité. »

ne devrait pas l'Entité Fw le faire pour moi ?!

+0

Ceci n'est utile que lorsqu'un modèle correspond à une fonction ou à un proc stocké; il n'y a pas de «liaison de colonne de résultat» pour les mappages de tables. À quoi servait votre modèle? –

Questions connexes