Utilisation de IDENTITY_INSERT avec EF4

entity-framework identity-insert

Question

J'essaie de créer un enregistrement dans la base de données qui a une valeur de clé primaire prédéfinie. Je sais comment faire cela avec SQL, mais je me demandais si EF pouvait le faire pour moi? Sinon, je vais devoir créer un proc stocké pour les insertions.

Réponse acceptée

Si l'attribut StoreGeneratedPattern défini sur "Aucun" pour votre entité, la valeur de la clé d'entité que vous spécifiez sera transmise à la base de données.

Dans le cas où cet attribut est défini sur "Identity" ou sur "Computed", il n'existe aucun moyen de contrôler quelle valeur sera définie sur cette colonne dans la base de données.

Par conséquent, si vous avez une colonne auto-incrémentée dans votre base de données et que l'expert ADO.NET Entity Data Model a défini StoreGeneratedPattern pour vous, vous pouvez modifier manuellement cet attribut en "Aucun" dans la partie SSDL du modèle à l'aide de l'éditeur XML, puis activez IDENTITY_INSERT .

Vous pouvez utiliser la méthode ObjectContext.ExecuteStoreCommand si vous utilisez EF4 ou la propriété ObjectContext.Connection.StoreConnection pour exécuter une commande SQL SET IDENTITY_INSERT <Your_Table> ON (à la fois dans EF1 et EF v4).



Related

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