Cómo salvar a un niño con una identificación asignada en nhibernate

Tengo dos clases:

public class Parent
{
    public virtual long? ID { get; set; } // native
    public virtual IList<Child> Children { get; set; }
    public virtual string Name { get; set; }
}

public class Child
{
    public virtual long ID { get; set; } // assigned
    public virtual string Name { get; set; }
}

Creando y salvando padres e hijos:

child = new Child() { ID = 1, Name = "SomeName" };
parent = new Parent() { Children = new List() { child } };
session.Save(parent);

Lo que me da:

NHibernate.StaleStateException: recuento de filas inesperado: 0; esperado: 1.

Creo que el problema es con la identificación asignada en el niño. Dado que tiene una identificación, NHibernate cree que se ha guardado anteriormente, lo que no es el caso.

El SQL generado (recortado y renombrado) es:

NHibernate: select child0_.ID as child1_1_, child0_.NAME as NAME1_, child0_.PARENT_ID as COMMAND7_1_, from CHILD child0_
NHibernate: select parent0_.PARENT_ID as parent1_10_
NHibernate: select parent0_.PARENT_ID as parent1_10_, parent0_.NAME as parent2_10_ from PARENT parent0_
NHibernate: UPDATE CHILD SET PARENT_ID = @p0 WHERE CHILD_ID = @p1;@p0 = 2, @p1 = 1

Mapeo de archivos:

<class name="MyNamespace.Child" table="CHILD">
  <id name="ID" column="CHILD_ID" type="System.Int64">
    <generator class="assigned"></generator>
  </id>
  <property name="Name" column="NAME"></property>
</class>

<class name="MyNamespace.Parent" table="PARENT">
  <id name="ID" column="PARENT_ID" type="System.Int64">
    <generator class="native"></generator>
  </id>
  <property name="Name" column="NAME"></property>
  <bag name="Children">
    <key column="PARENT_ID"></key>
    <one-to-many class="MyNamespace.Child"></one-to-many>
  </bag>
</class>

Mientras buscaba en google, encontré una etiqueta de versión que puede ser una solución, pero no tengo un campo persistente para usar como versión. En este caso, ¿cómo puedo guardar (insertar) un hijo con una identificación asignada y su padre?

Respuestas a la pregunta(2)

Su respuesta a la pregunta