Κι εγώ δεν έχω εμπειρία από nHibernate ("τότε γιατί απαντάς", θα ρωτήσεις). Anyway... Από τα λίγα που καταλαβαίνω, το λάθος συμβαίνει σε insert. Θα συμφωνήσω με τον Παναγιώτη ότι το native ΔΕΝ είναι καλή επιλογή. Η τιμή που παίρνει το ID εξαρτάται από το τι καταλαβαίνει το nHibernate "ερμηνεύοντας" το key generation strategy ανάλογα με το DB Engine που χρησιμοποιείται (είτε identity, είτε sequence π.χ. Oralce, είτε hilo). Για περισσότερες πληροφορίες δες
εδώ. Το επόμενο ερώτημα, λοιπόν, είναι ποιο DB Engine χρησιμοποιείς και πως γίνεται το ID generation. Επίσης, καλόν είναι να χρησιμοποιείς Version column, οπότε ρίξε και μια ματιά
εδώ. Τέλος, καλό θα ήταν να ρίξεις μια ματιά στο πως αποθηκεύονται τα entities (π.χ. με Save() ή SaveOrUpdate()), αν προηγουμένως έχουν γίνει dettached κλπ (ρίξε μια ματιά κι
εδώ). Ελπίζω αυτά που γράφω να βοηθούν και όχι να αποπροσανατολίζουν...
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!