J'ai un projet d'animal de compagnie rédigé en php. L'un des travaux de mon code consiste à charger des fichiers csv et à les écrire dans une table MySQL qui possède à la fois une clé primaire générée automatiquement et une clé unique multipart. Je n'ai aucun contrôle et des moyens de vérifier est un fichier déjà traité si clé unique est venu à portée de main. J'insère des données dans la table avec INSERT IGNORE
qui échoue silencieusement quand j'essaye d'insérer des données qui existent déjà et tout fonctionne très bien comme il le devrait.ObjectContext.SaveChanges et Duplicate PRIMARY Key
Maintenant, je suis en train de faire projet similaire en C# 4 LINQ aux entités mais quand je tente d'appeler ObjectContext.SaveChanges()
méthode pour les objets à partir de fichiers qui sont déjà dans le tableau, est UpdateException
avec SqlClient.SqlException
comme jeté exception interne. Une solution a été l'ajout Ignore Duplicate Keys = Yes
à l'index et il fonctionne un peu, mais
- Il est le changement sur le serveur à la place sur le client
- OptimisticConcurrencyException est jeté sur la mise à jour avec l'index existant
Y at-il moyen facile et élégant accomplir ces insertions avec L2E qui n'implique pas de changements de base de données ???
Je recommande que avant d'enregistrer les modifications pour vérifier l'unicité du champ clé. – RBZ