J'ai un objet produit qui contient 2 collections, accessoires et consommateurs. Les consommateurs se rapportent à un accessoire, la liste des produits qui le consomment. Dans la base de données, j'ai une relation plusieurs à plusieurs pour ces collections qui est implémentée en tant que table de liaison Product_Accessory. Dans la cartographie j'ai créé un grand nombre à plusieurs d'une façon pour les accessoires et l'autre façon pour les consommateurs:Trouvé des références partagées à une collection
mapping.HasManyToMany<oProduct>(x => x.Accessories)
.Table("Product_Accessory")
.Cascade.SaveUpdate()
.ParentKeyColumn("ProductId")
.ChildKeyColumn("AccessoryId")
.AsBag();
mapping.HasManyToMany<oProduct>(x => x.Consumers)
.Table("Product_Accessory")
.Cascade.SaveUpdate()
.ParentKeyColumn("AccessoryId")
.ChildKeyColumn("ProductId")
.AsBag();
Tout cela semble très logique, mais NHibernate me donne une erreur de références partagées Trouvé à une collection parce qu'il ya deux listes de produits.
Est-ce que ce motif est possible avec nHibernate? Quel est le meilleur moyen d'y parvenir?
Merci
Phil
Y a-t-il une raison pour laquelle vous * devez * utiliser la même table de jointure pour les deux collections? Ma première pensée serait d'utiliser deux séparés. – DanP
Eh bien, vous pourriez utiliser 2 jointures mais le point entier de la table est de générer un enregistrement pour les accessoires et les consommateurs –