Question de base: Comment puis-je créer une bidirectionnel un-à-plusieurs carte dans NHibernate Fluent?
Détails:
J'ai un parent de l'objet avec de nombreux enfants. Dans mon cas, il est sans signification pour l'enfant de ne pas avoir de parent, de sorte que dans la base de données, je voudrais la clé étrangère à la mère d'avoir de contrainte not NULL. Je suis auto-génération de ma base de données à partir de la fluidité de la NHibernate de cartographie.
J'ai une mère avec de nombreux objets enfants de la sorte:
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?
}
Voici la cartographie, j'ai commencé avec:
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();
}
}
Dans la table de Détail, la Summary_id doit être Non Null, parce que dans mon cas, il est inutile d'avoir un Détail de l'objet n'est pas attaché à la résumé de l'objet. Cependant, en utilisant seulement la HasMany (carte) quitte le Summary_id clé étrangère nullable.
J'ai trouvé dans le NHibernate docs (http://www.hibernate.org/hib_docs/nhibernate/html/collections.html) que "Si le parent est nécessaire, utiliser une bidirectionnel un-à-plusieurs association".
Alors, comment puis-je créer l'bidirectionnel un-à-plusieurs carte dans NHibernate Fluent?