I have confirmed the solution with the help of my architect.
version tag should always be after the id tag.
<hibernate-mapping namespace="Model" assembly="Model" xmlns="urn:nhibernate-mapping-2.2">
<class name="Bar" lazy="true" table="`BAR`" schema="`dbo`">
<id name="ID" access="property" column="`ID`">
<generator class="assigned" />
</id>
<version name="Version" column="`VERSION`" type="int?" />
</class>
</hibernate-mapping>
In our actual code.
We have this
<hibernate-mapping namespace="Model" assembly="Model" xmlns="urn:nhibernate-mapping-2.2">
<class name="Bar" lazy="true" table="`BAR`" schema="`dbo`">
<id name="ID" access="property" column="`ID`">
<generator class="assigned" />
</id>
<property></property>
<property></property>
<property></property>
<version name="Version" column="`VERSION`" type="int?" />
</class>
</hibernate-mapping>