Juste un coup rapide ... J'ai la stratégie du générateur d'ID suivant pour une de mes classes mappées:Skipping une nouvelle/transitoire de la stratégie de générateur d'identité de l'entité NHibernate lorsqu'un ID est déjà fourni
<id name="UID" type="System.Guid">
<column name ="UID" sql-type ="uniqueidentifier" />
<generator class="guid.comb" />
</id>
L'entité en question est impliqué dans des comportements de synchronisation/fusion à partir desquels il est nécessaire d'avoir un identifiant global unique.
Lorsqu'une entité est créée pour la première fois sur une application client, sa propriété UID
est affectée de sorte qu'elle soit la même valeur que l'entité équivalente sur le serveur. Toutefois, la stratégie de génération d'ID ci-dessus écrase toute valeur fournie pour les entités nouvelles/transitoires.
Quel est le correctif? Devrai-je supprimer la stratégie de générateur et attribuer mes propres GUID? Ou la stratégie du générateur est-elle configurable pour générer uniquement un guid.comb
si nécessaire?
ok merci, je vais essayer cela et vous revenir :) – Rabid
Malheureusement NHibernate semble être le mettre à jour son état d'entité interne avec un UID généré, entraînant l'exception suivante: identifiant d'une instance de csl.Risk.Structure.RiskClass a été modifié de 12ae645e-c50f-4fc5-b0ff-9db900bd9a4e à 42e565c7-8dd3-416f-89a2-9db801086d93; où le 1er guid est généré et le second est assigné. Bummer :( – Rabid
Nouvelle réponse: Vous devrez supprimer la stratégie du générateur et attribuer vos propres GUID. :-) –