Pourquoi n'est pas mon NHibernate sac collection paramètre 'id parent des enfants de façon dynamique?

J'ai un nouvel objet avec une collection de nouveaux objets à l'intérieur sur certains biens comme un IList. Je vois à travers le générateur de profils sql deux requêtes de type insert être exécuté.. un pour le parent qui a le nouveau guid id, et l'autre pour l'enfant, cependant, la clé étrangère sur l'enfant qui fait référence à la mère, est un vide guid. Voici ma cartographie sur le parent:

<id name="BackerId">
  <generator class="guid" />
</id>
<property name="Name" />
<property name="PostCardSizeId"  />
<property name="ItemNumber" />

<bag name="BackerEntries" table="BackerEntry" cascade="all" lazy="false" order-by="Priority">
  <key column="BackerId" />
  <one-to-many class="BackerEntry" />
</bag> 

Sur l'Allié.cs de la classe, j'ai défini BackerEntries propriété

IList<BackerEntry>

Quand j'essaie de SaveOrUpdate le passé dans l'entité-je obtenir les résultats suivants dans le générateur de profils sql:

exec sp_executesql N'INSERT EN Backer (Nom, PostCardSizeId, ItemNumber, BackerId) VALUES (@p0, @p1 @p2, @p3)',N'@p0 nvarchar(3),@p1 de type uniqueidentifier@p2 de type nvarchar(3),@p3
uniqueidentifier',@p0=N'qaa',@p1='BC95E7EB-5EE8-44B2-82FF30F5176684D',@p2=N'qaa',@p3='18FBF8CE-FD22-4D08-A3B1-63D6DFF426E5'

exec sp_executesql N'INSERT EN BackerEntry (BackerId, BackerEntryTypeId, le Nom, la Description, MaxLength, IsRequired, la Priorité, BackerEntryId) VALUES (@p0, @p1 @p2, @p3, @p4, @p5, @p6, @p7)',N'@p0 uniqueidentifier,@p1 de type uniqueidentifier@p2 de type nvarchar(5),@p3 de type nvarchar(5),@p4 int,@p5 peu,@p6 int,@p7 uniqueidentifier',@p0='00000000-0000-0000-0000-000000000000',@p1='2C5BDD33-5DD3-42EC-AA0E-F1E548A5F6E4',@p2=N'qaadf',@p3=N'wasdf',@p4=0,@p5=1,@p6=0,@p7='FE9C4A35-6211-4E17-A75A-60CCB526F1CA'

Comme vous pouvez le voir, ce n'est pas la réinitialisation du vide guid pour BackerId sur l'enfant pour le nouveau guid réel de la mère.

Enfin, l'exception throw est:

"NHibernate.Exceptions.GenericADOException: could not insert: [CB.ThePostcardCompany.MiddleTier.BackerEntry][SQL: INSERT INTO BackerEntry (BackerId, BackerEntryTypeId, Name, Description, MaxLength, IsRequired, Priority, BackerEntryId) VALUES (?, ?, ?, ?, ?, ?, ?, ?)] ---\u003e System.Data.SqlClient.SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint

EDIT: RÉSOLU! La première réponse qui m'a orienté dans la bonne direction. J'ai besoin d'ajouter que la référence arrière sur l'enfant de la cartographie et de la classe. Cela a permis de travailler dans un but purement .net façon, cependant, lors de l'acceptation de json, il y avait une déconnexion j'ai donc dû venir avec un peu décalé code pour re-joindre les enfants.

OriginalL'auteur EvilSyn | 2008-09-28