2010-07-06 6 views
1

Database strucutre:Insolite? HasManyToMany NHibernate Mapping

Shows 
ID 
Name 

Genres 
ID 
Name 

ShowsGenres 
ShowsID 
GenresID 

Au-dessus est ma base de données, je suis en train de comprendre comment cartographier ce bien. Mon spectacle objet est comme ceci:

public class Show 
{ 
    public virtual int ID { get; set; } 
    public virtual string Name { get; set; } 
    public virtual IList<Genre> Genres { get; set; } 
} 

Mon Genre objet est:

public class Genre 
{ 
    public virtual int ID { get; set; } 
    public virtual string Name { get; set; } 
    public virtual IList<Show> Shows { get; set; } 
} 

J'ai essayé plusieurs varations différents de HasManyToMany, mais aucun travail comme je le veux.

Je dois être en mesure de supprimer un spectacle et la relation avec le genre, ou de nombreux genres, mais ne pas supprimer le (s) genre (s).

Je dois être en mesure de supprimer un genre et sa relation avec un spectacle, ou de nombreux spectacles, mais ne pas supprimer le spectacle (s).

Comment puis-je mapper ceci ou dois-je essayer quelque chose différemment?

Mise à jour: En y réfléchissant plus, je devrais aussi être en mesure de supprimer la relation entre un spectacle et un genre sans supprimer le spectacle ou le genre.

Voici mes mappings que j'ai, mais pas exactement sûr qu'ils sont corrects.

 HasManyToMany<Genre>(x => x.Genres) 
      .Table("ShowGenres") 
      .ParentKeyColumn("ShowID") 
      .ChildKeyColumn("GenreID"); 

     HasManyToMany<Show>(x => x.Shows) 
      .Table("ShowGenres") 
      .ParentKeyColumn("GenreID") 
      .ChildKeyColumn("ShowID"); 
+0

S'il vous plaît montrer les correspondances. –

+0

mis à jour avec les mappings J'ai actuellement, mais je sais qu'ils ne fonctionnent pas juste juste pas sûr de savoir comment les faire fonctionner. – percent20

+0

Je sais que c'est un ancien article mais avez-vous déjà trouvé une solution à ce problème? Je suis confronté à une situation similaire. –

Répondre