Question

Est-ce que quelqu'un peut me diriger dans la bonne direction pour gérer une erreur de conflit de clés de commande dans c # .net à l'aide de Sync Framework.

J'essaie de synchroniser SQL Server 2008 avec la base de données de cache de données locale (.sdf) et souhaite conserver les DEUX lignes en conflit dans le serveur et le client et NE PAS permettre au serveur ou au client de gagner?

Je reçois une erreur de conflit pk lorsque j'insère une nouvelle ligne dans le serveur et le client ayant le même identifiant PK.

Toutes les suggestions vous en seraient reconnaissantes.

Merci

Était-ce utile?

La solution 2

Ceci est résolu en utilisant un GUID pour le PK au lieu d'un auto-incrémentant.

Ceci garantit que chaque ligne insérée par le serveur ou par un client sera unique et fonctionnera très bien.

Il existe certains inconvénients tels que l’espace de stockage supplémentaire et le temps nécessaire à la recherche, etc., mais c’est quelque chose avec lequel je veux vivre (et je vais filtrer les données que le client obtient, ce qui contribuera à améliorer les performances).

Merci à tous pour votre aide.

Autres conseils

Le principe général pour ce type de problème est d’avoir une colonne pour une clé naturelle. L'idée est que la clé primaire identifie de manière unique une ligne dans une table, tandis que la clé naturelle identifie de manière unique un objet décrit par la ligne. En cas de conflit, laissez le serveur gagner et insérez une nouvelle ligne côté client. Une nouvelle PK sera émise, mais la clé naturelle reste la même. Plus tard, il est facile de trouver ces lignes en les ordonnant par la clé naturelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top