C #, framework d'entités, incrémentation automatique

c# entity-framework

Question

J'apprends Entity Framework sous VC # 2010.

J'ai créé un tableau simple à des fins d'apprentissage. L'un des champs est un entier de type "id", identity étant défini sur true. J'ai généré Entity Data Model à partir de cette table et l'ai connecté à dataGridView. Le problème est qu'il n'incrémente pas automatiquement - chaque ligne insérée veut être id = 0 (ce qui est bien sûr impossible, puisque id doit être unique)

Qu'est-ce que je fais mal? Comment dois-je configurer EF ou la base de données SQL elle-même?

Réponse acceptée

Vérifiez dans votre modèle EDMX que l'attribut StoreGeneratedPattern du champ auto-incrémenté est défini sur "Identity". De cette manière, EF sait que les numéros automatiques sont gérés par la base de données.

Ici, cela s’explique mieux: Numéro automatique avec Entity Framework


Réponse populaire

L'identité n'est pas définie et incrémentée simplement en ajoutant à l'ensemble d'entités ... L'entité n'est pas réellement enregistrée dans la base de données jusqu'à ce que vous appeliez context.SaveChanges () ...

db.AddToUserSet(user);//Added to EF entity collection
db.SaveChanges();//INSERT executed in db, Identity set and incremented.


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow