Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment insérer une valeur d'identité dans Oracle à l'aide d'Entity Framework à l'aide d'une séquence

Ce n'est pas un problème EF, car il n'y a pas d'incrémentation automatique dans oracle. Vous devrez soit obtenir la valeur de séquence manuellement, soit créer un déclencheur pour le définir pour vous.

Mettre à jour

Pour obtenir la valeur de la séquence, vous avez deux options - soit créer une procédure stockée, qui renvoie la valeur - soit créer une fonction .Net (n'a pas vraiment besoin d'être dans une fonction, c'est juste plus simple) qui appelle SQL brut comme ceci :

Database.SqlQuery<int>("SELECT SEQ_SOMESEQ.NEXTVAL FROM dual");

J'ai personnellement eu beaucoup de problèmes avec les fonctions oracle et EF, donc j'irais avec le sql brut.