2010-04-26 6 views
6

Je me gratte la tête; J'ai une table Car et une table Customer qui ont une relation many-to-many. Dans cette table de relation, je veux ajouter une colonne qui peut me dire quel genre de relation c'est; est le client testdriving la voiture, veut-il acheter la voiture, ect. Ce que je veux finir avec est un objet de classe Car qui contient une collection de clients et les informations de relation. Je pourrais regarder ceci dans le mauvais sens alors n'hésitez pas à me pousser dans la bonne direction.NHibernate: relation plusieurs-à-plusieurs avec champ dans la table de relation

+0

Avons-nous répondu à votre question? Sinon, pouvons-nous avoir plus de détails? –

Répondre

4

Faire la relation une entité:

class CarRelation 
{ 
    Car Car {get; set; } 
    RelationType Type {get; set;} 
} 

Un pur many-to-many relation n'a pas de propriétés supplémentaires.

+0

Votre déclaration "Une relation pure-à-plusieurs n'a pas de propriétés supplémentaires" m'a aidé à surmonter un obstacle mental aujourd'hui - merci! – Mayo

4

Je pense qu'il vous manque une entité supplémentaire. Vous devez ajouter une entité qui exprime l'intérêt du client dans la voiture. Vous aurez besoin de trouver le bon nom pour s'adapter à votre domaine d'activité, mais voici ma conjecture:

Vous avez une table CLIENT pour stocker des informations sur un client spécifique. Le CLIENT a une relation de un à plusieurs avec la table CUSTOMERINTEREST. CUSTOMERINTEREST stocke des informations sur les types d'activités d'achat auxquelles le client est confronté (essais routiers, lèche-vitrines, etc.). CUSTOMERINTEREST a une relation plusieurs à un avec la table CAR. CAR stocke des informations sur des automobiles spécifiques dans l'inventaire du magasin. Donc, ma meilleure supposition est que si la chose au milieu de votre relation a besoin de plus de colonnes que les deux clés étrangères, alors vous n'avez pas vraiment une relation plusieurs à plusieurs. Vous avez deux relations à plusieurs et vous n'avez pas encore identifié la chose au milieu.

Questions connexes