Как сохранить ребенка с назначенным идентификатором в nhibernate

У меня есть два класса:

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; }
}

Создание и сохранение родителя и ребенка:

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

Что дает мне:

NHibernate.StaleStateException: Unexpected row count: 0; expected: 1.

Я думаю, что проблема с назначенным идентификатором на ребенка. Поскольку он имеет идентификатор, NHibernate думает, что ранее сохранял ранее, а это не так.

Сгенерированный (обрезанный и переименованный) SQL:

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

Файлы сопоставления:

<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>

При поиске в Google я обнаружил тег версии, который может быть решением, но у меня нет постоянного поля для использования в качестве версии. В этом случае, как я могу сохранить (вставить) дочерний элемент с назначенным идентификатором и его родителем?

Ответы на вопрос(2)

Ваш ответ на вопрос