Pregunta básica: ¿Cómo puedo crear un mapa bidireccional de uno a muchos en Fluiber NHibernate?Fluidez NHibernate: ¿Cómo crear un mapeo bidireccional de uno a muchos?
Detalles:
que tienen un objeto padre con muchos niños. En mi caso, no tiene sentido que el niño no tenga un padre, por lo tanto, en la base de datos, me gustaría que la clave externa del padre tenga una restricción NOT NULL. Estoy generando automáticamente mi base de datos del mapeo de NHibernate fluido.
tengo un padre con muchos objetos secundarios de este modo:
public class Summary
{
public int id {get; protected set;}
public IList<Detail> Details {get; protected set;}
}
public class Detail
{
public int id {get; protected set;}
public string ItemName {get; set;}
/* public Summary Owner {get; protected set;} */ //I think this might be needed for bidirectional mapping?
}
Aquí es el mapeo Empecé con:
public class SummaryMap : ClassMap<Summary>
{
public SummaryMap()
{
Id(x => x.ID);
HasMany<Detail>(x => x.Details);
}
}
public class DetailMap : ClassMap<Detail>
{
public DetailMap()
{
Id(x => x.ID);
Map(x => x.ItemName).CanNotBeNull();
}
}
En la tabla detalle, el Summary_id debe ser no nulo, porque en mi caso no tiene sentido tener un objeto Detail no asociado al objeto de resumen . Sin embargo, el uso del mapa HasMany() deja la clave externa Summary_id nullable.
Encontré en los documentos NHibernate (http://www.hibernate.org/hib_docs/nhibernate/html/collections.html) que "Si se requiere el padre, use una asociación uno a muchos bidireccional".
Entonces, ¿cómo puedo crear el mapa bidireccional de uno a muchos en Fluent NHibernate?
¿Realmente no hay manera de hacer que la columna de clave externa "no anulable" sin añadir una referencia a los padres sobre el niño ? –
+1 Desearía poder votar nuevamente. –