Estoy intentando guardar (insertar) una entidad principal con una lista de entidades secundarias. Ambas entidades usan un Guid como claves principales. Las claves no admiten nulos y no hay ninguna relación clave establecida en el archivo db.Inserción de elementos primarios y secundarios con NHibernate al mismo tiempo
El guardado no funciona, se lanza una excepción que indica que estoy tratando de guardar un nulo en la clave externa principal en la tabla secundaria.
Estaba esperando que nhibernate cree una clave para el padre y permita que sus objetos secundarios lo conozcan. ¿Es esto una limitación de NHibernate o de utilizar Guids como claves principales?
Este answer sugiere que tenga que configurar el padre de manera manual, ¿es esta la única manera?
Éstos son mis asignaciones como referencia: mapeo
Padres:
HasMany(x => x.Children).KeyColumn("ParentKey").Inverse().Cascade.All();
mapeo Niño:
References(x => x.Parent).Not.Nullable().Column("ParentKey");
Claro que no espero que la referencia esté allí en tiempo de ejecución antes de guardar (tal vez mi pregunta es engañosa, lo edito) - Lo que espero es que Nhibernate sepa que Parent y Children son nuevos, y saber cómo persistirlos con las llaves adecuadas ... ¿demasiado para preguntar? – Dan
@Dan He actualizado mi respuesta para ser más útil. – docmanhattan
solo para explicar más sobre las asignaciones y restringir consultar este enlace http://wiki.fluentnhibernate.org/Fluent_mapping#Access_strategies – cpoDesign